2013-10-30 109 views
0

例如,我們有一個基本的node.js服務器< - > client comunicaciton。Node.js中尚未收到哪些消息?

一個基本的node.js服務器每發送一個消息給每個500ms消息,每個客戶端連接到它們各自的套接字啓動,客戶端正確響應heratbeat並及時接收所有消息。但是,想象客戶端存在暫時連接延遲(不關閉套接字),cpu過載等。並且在2秒或更多時間內不能處理任何內容。

在這種情況下,哪些消息還沒有被客戶端接收? 它們存儲在節點?在任何緩衝區或類似的?

而反之亦然?客戶端每隔500毫秒發送一條消息到服務器(服務器只聽不響應),但服務器在2或3秒內發生臨時連接問題或cpu開銷。

感謝您的建議!任何信息或aclaration會受到歡迎

哈維爾

+0

如果套接字沒有中斷,我會想象他們反正(或嘗試)到客戶端。最好的方法,模擬場景並找出答案! :) – tymeJV

+0

是的,即時通訊只是模擬,但不是難以清除。我看他們遲早會到達,但即時通訊擔心中間空間的大小或任何他們存儲的東西,直到他們到達.. –

回答

1

是,它們存儲在緩衝區,主要是由OS內核提供的緩衝區。接收端連接到節點服務器的連接也是如此。

+0

好吧,我正在假設。只有好奇心,你知道這個緩衝區的名字? –

+0

我認爲每個操作系統的名稱和實現都略有不同,但我通常會聽到它們被稱爲「內核發送緩衝區」。 –