Javascript Websockets消息丢失

Javascript Websockets消息丢失,javascript,networking,websocket,Javascript,Networking,Websocket,在使用WebSocket时,我注意到一些消息丢失。我正在尝试在mobile safari(客户端)和c#(服务器)之间进行通信。我使用superWebSocket(开源)作为服务器,所以它可能是一个服务器错误 但是,只有当连接拥挤时(当我发送大量消息时),消息才会被丢弃。这对我来说是UDP的“收获”,但我记得在某个地方读到web套接字是TCP 是否有可能在javascript中发出“发送”命令,而接收方没有收到消息?我一直在高流量应用程序中广泛使用WebSocket,以及在单个丢失消息(在任何方

在使用WebSocket时,我注意到一些消息丢失。我正在尝试在mobile safari(客户端)和c#(服务器)之间进行通信。我使用superWebSocket(开源)作为服务器,所以它可能是一个服务器错误

但是,只有当连接拥挤时(当我发送大量消息时),消息才会被丢弃。这对我来说是UDP的“收获”,但我记得在某个地方读到web套接字是TCP


是否有可能在javascript中发出“发送”命令,而接收方没有收到消息?

我一直在高流量应用程序中广泛使用WebSocket,以及在单个丢失消息(在任何方向)都是致命的情况下使用WebSocket。我从来没有见过任何信息丢失,从来没有。然而,我确实记得在某个地方看到过一篇关于同一问题的帖子或问题,而那个人也在使用superWebSocket作为服务器。所以我强烈怀疑superWebSocket中有一个bug

如果您使用非移动浏览器,是否也会遇到同样的问题?iOS浏览器(我想这就是你所说的移动Safari)可能有WebSocket bug。我还没有用WebSocket对浏览器进行过广泛的测试。我已经在Linux和Windows上对Chrome、Firefox(启用WebSocket)和Opera(启用WebSocket)以及Safari进行了广泛的测试


除非整个连接失败,否则不允许发送Javascript到达服务器。如果发生这种情况,那么某个地方就有一个bug。

WebSocket确实是TCP。这可能是浏览器问题或服务器错误,但不是UDP问题。您的问题可能不是浏览器中的错误。它可能只是您需要处理的
正常
网络问题。如果TCP连接中断/重置,TCP可能会丢失消息。只有当您从协议中的对等方接收到ack时,您才能知道该对等方看到消息。服务器的第一条消息可能会丢失在websocket中,这会让这种感觉更糟:这个问题已经很老了。它指的是旧的(obselete)websockets服务器和iOs(3或4),当时大多数移动浏览器一开始都没有实现websockets。我再也没有遇到过这个问题。