我們有一個服務器,使用龍捲風寫,它比的WebSockets發送異步消息給客戶端。在這種情況下,Mac上的Chrome中運行的JavaScript應用程序。當客戶端強制掛斷,在這種情況下,通過將客戶睡覺,服務器仍然認爲它是將消息發送到客戶端。另外,當客戶從睡眠中喚醒時,消息會突然傳送。WebSocket的消息能排隊
這些消息排隊/緩衝的機制是什麼?誰是負責的人?他們爲什麼仍然交付?誰正在重新連接套接字?我的直覺是,儘管websockets不像HTTP這樣的請求/響應,但它們仍然需要ACK數據包,因爲它們是建立在TCP上的。這是否是爲了使協議在移動時代的臨時丟失更有力?
有趣的是,如果我沒有在應用程序休眠時處理客戶端上的消息,我可能會同意這種情況。但是,整個客戶端計算機正在睡眠。據我所知,網絡適配器斷電,收到數據包時不會發送ACK。 –
喔..這是另一種睡眠......在這種情況下,我將跟蹤使用Wireshark或類似工具包的序列了解圖片...這可能是什麼... – Andrew