我们有一个服务器,使用龙卷风写,它比的WebSockets发送异步消息给客户端。在这种情况下,Mac上的Chrome中运行的JavaScript应用程序。当客户端强制挂断,在这种情况下,通过将客户睡觉,服务器仍然认为它是将消息发送到客户端。另外,当客户从睡眠中唤醒时,消息会突然传送。WebSocket的消息能排队
这些消息排队/缓冲的机制是什么?谁是负责的人?他们为什么仍然交付?谁正在重新连接套接字?我的直觉是,尽管websockets不像HTTP这样的请求/响应,但它们仍然需要ACK数据包,因为它们是建立在TCP上的。这是否是为了使协议在移动时代的临时丢失更有力?
有趣的是,如果我没有在应用程序休眠时处理客户端上的消息,我可能会同意这种情况。但是,整个客户端计算机正在睡眠。据我所知,网络适配器断电,收到数据包时不会发送ACK。 –
喔..这是另一种睡眠......在这种情况下,我将跟踪使用Wireshark或类似工具包的序列了解图片...这可能是什么... – Andrew