我想我缺少一些基本的東西,因為我對 Node 服務(wù)器還很陌生。我們的應(yīng)用程序非?;A(chǔ)。服務(wù)器應(yīng)該接收少量文本行(數(shù)據(jù)),合并并解析它們,一旦連接關(guān)閉(數(shù)據(jù)發(fā)送結(jié)束),它就會將數(shù)據(jù)發(fā)送到 api。var net = require('net');var fs = require('fs');const axios = require('axios')const server = new net.Server();server.listen(PORT, IP);server.on("connection", client => {? ? client.write("Hello\n");? ? console.log('connected');? ??? ? let received = "";? ? client.on("data", data => {? ? ? ?received += data? ? ? ?console.log("Partial data is: " + data);? ? });? ? client.on("close", () => {? ? ? ? received = received.toString('utf8');? ? ? ? fs.appendFile('log.txt', received, function (err) {});? ? ? ? received = received.replace(/(?:\r\n|\r|\n)/g, "||");? ? ? ? axios.post(APIADDRESS, {data: received});? ? ? ? console.log('Full data is: '+ {data: received});? ? });});要發(fā)送數(shù)據(jù),我只是運行 anetcat或nc使用netcat ipaddress port,這不是問題。連接正常,收到狀態(tài)消息。問題是——一旦我從兩個不同的 SSh 服務(wù)器打開兩個或多個連接,就會發(fā)生一些奇怪的事情。我可以一行接一行地發(fā)送就好了。服務(wù)器報告“部分數(shù)據(jù)”調(diào)試沒有問題,對于他們兩個。但是,一旦我關(guān)閉其中一個連接 (ctrl+c),它們都會關(guān)閉。最后,只收到來自手動關(guān)閉連接的數(shù)據(jù)。另一個來自單獨的ncssh 服務(wù)器的單獨服務(wù)器似乎永遠無法到達該client.on("close")部分。它只是無緣無故地終止了。有任何想法嗎?我什至不知道從哪里開始。//EDIT 剛剛從我的電腦和一些使用單獨的 SSH 服務(wù)器的 ssh 移動應(yīng)用程序測試了它。一旦在任何設(shè)備上發(fā)送 ctrl+c,它就會關(guān)閉所有客戶端的連接。//忘了說我正在運行 pm2 來保持服務(wù)器正常運行。一旦我手動打開腳本,忽略 pm2 - 它工作正常。詭異的。它的發(fā)生是因為 PM2.5。
關(guān)閉單節(jié)點服務(wù)器連接將全部關(guān)閉
呼喚遠方
2023-05-25 17:34:59