java - websocket 消息会不会丢失?

标签 java tcp websocket java-websocket

我目前正在开发一个 Java WebSocket 客户端应用程序,我必须确保客户端收到来自服务器的每条消息。是否有可能由于连接中断而丢失一些消息(一旦它们从服务器发送)? WebSocket 基于 TCP,所以这不应该发生,对吧?

最佳答案

这是可能发生的。 TCP保证数据包的顺序,但并不意味着即使底层网络发生不可恢复的故障,从服务器发送的所有数据包都到达客户端。想象一下,当您的应用程序正在与您的服务器通信时,有人在最糟糕的时机拔掉您的 LAN 电缆或关闭您的 WiFi 接入点。 TCP 没有克服这样的麻烦。

为确保从您的服务器发送的每条 WebSocket 消息都能到达您的客户端,您必须在应用层实现某种 SYN/ACK。

关于java - websocket 消息会不会丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32474023/

相关文章:

Python SocketServer不会握手

javascript - peerjs/webrtc iceConnectionState 失败

java - 在我的 setOnClickListener() 上获取 NullExceptionPointer

networking - 关于数据包的一些困惑

java - 禁止浏览器远程访问tomcat

tcp - 如何使用自定义服务器手动发送 RST?

javascript - Node.js 无法识别 Express 对象并且我无法设置 CSS/JS 的路径

java - 为什么我从 WebSocket 客户端获得两个连接?一个是 "empty"

java - JBoss中如何查看数据源?

java - 使用 Java 8 更改列表中元素的所有位置