簡體   English   中英

Node.JS套接字服務器和同一服務器上的連接速度變慢

[英]Node.JS Socket server and connection on same server slow down

我在這里可能做錯了什么,但是從本質上講,我有一個服務層來攔截對某個URL的發布請求。 重要的是,這個功能永遠都不會失敗,因此我將其與主服務器隔離了。 我認為讓服務層接受http請求並通過任何連接的流發送生成的XML數據包是最簡單的。 好吧,這在技術上是可行的,但是我遇到的問題是服務器和客戶端都在同一台機器上,並且似乎stream.write正在填充內核緩沖區並減慢了兩次命中之間的時間服務層到實際到達客戶端的時間。

在服務器端

  • 在連接時,我將流推送到連接數組中,我還設置了一個時間間隔以確保在過去的12秒(心跳)中收到了一條消息。

  • 接收時,我遍歷流數組,確保其可寫並將xml數據包寫入其中。

在客戶端

  • 每8秒鍾寫一次“ Heartbeat”,以確保我不會斷開連接

  • 在收到消息時,我將XML解析為JSON對象,並在服務器內進行處理。

關於這一點,似乎沒有什么可笑的,但是我可能會遺漏一些東西。

我認為讓服務層接受http請求並通過任何連接的流發送生成的XML數據包是最簡單的。

要記住的一件事是節點緩沖通過流發送的內容。 就像您提到的那樣,“ stream.write正在填充內核緩沖區”,這是預期的行為,因為通常不會使用流以這種方式進行通信。 您可能會嘗試其他操作,例如通過套接字向其他進程發送請求?

希望這會有所幫助嗎?

隨時進入#node.js並向我們​​提問!

編輯:再三考慮,您已經在使用套接字嗎? 如果是這樣,我的回答真的無濟於事,很抱歉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM