我想我缺少一些基本的東西,因為我對 Node 服務器還很陌生。我們的應用程序非?;A。服務器應該接收少量文本行(數據),合并并解析它們,一旦連接關閉(數據發送結束),它就會將數據發送到 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});? ? });});要發送數據,我只是運行 anetcat或nc使用netcat ipaddress port,這不是問題。連接正常,收到狀態消息。問題是——一旦我從兩個不同的 SSh 服務器打開兩個或多個連接,就會發生一些奇怪的事情。我可以一行接一行地發送就好了。服務器報告“部分數據”調試沒有問題,對于他們兩個。但是,一旦我關閉其中一個連接 (ctrl+c),它們都會關閉。最后,只收到來自手動關閉連接的數據。另一個來自單獨的ncssh 服務器的單獨服務器似乎永遠無法到達該client.on("close")部分。它只是無緣無故地終止了。有任何想法嗎?我什至不知道從哪里開始。//EDIT 剛剛從我的電腦和一些使用單獨的 SSH 服務器的 ssh 移動應用程序測試了它。一旦在任何設備上發送 ctrl+c,它就會關閉所有客戶端的連接。//忘了說我正在運行 pm2 來保持服務器正常運行。一旦我手動打開腳本,忽略 pm2 - 它工作正常。詭異的。它的發生是因為 PM2.5。
關閉單節點服務器連接將全部關閉
呼喚遠方
2023-05-25 17:34:59