亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關閉單節點服務器連接將全部關閉

關閉單節點服務器連接將全部關閉

呼喚遠方 2023-05-25 17:34:59
我想我缺少一些基本的東西,因為我對 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。
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

我猜您已將 Putty 配置為“盡可能共享 SSH 連接”。根據某些文檔,這樣做時:

使用此模式時,連接到給定服務器的第一個 PuTTY 成為“上游”,這意味著它是管理真正 SSH 連接的那個。所有重用該連接的后續 PuTTY 都稱為“下游”:它們根本不連接到真實服務器,而是通過本地進程間通信方法連接到上游 PuTTY。

因此,如果您 Ctrl+C 管理實際共享連接的 PuTTY 會話,它們都會失去連接。

您大概可以在事物的客戶端或服務器端禁用此共享連接功能,因為必須啟用兩者才能進行共享。


查看完整回答
反對 回復 2023-05-25
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

給以后來這里的任何人。

如果您使用啟用了 --watch 的 pm2,并且文本日志文件與您的主服務器腳本位于同一文件夾中......這就是它在單個客戶端斷開連接后斷開連接的原因。它只是檢測到日志已更改。

我不是在打臉,那一點都不好笑。


查看完整回答
反對 回復 2023-05-25
  • 2 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號