关于使用WebSocket的问题
来源:11-4 基于web_socket_channel实现弹幕通信

LBruce
2025-02-28
如果是要进一步追求性能的话,其实用TCP协议会更好吧。HTTP和WebSocket都是应用层协议,而用TCP的话,直接在传输层就可以进行处理了。而且还可以和服务端自定义内容协议,比如使用protobuf序列化等等。后端用Netty就可以轻松搭起来一个TCP服务器了,如果不考虑每条实时弹幕都要确保一定要传送到目标设备的话,用UDP还能省去三次握手四次挥手。
老师对这方面怎么看?谢谢老师解答
写回答
1回答
-
如果是 Web 端:WebSocket 是更现实的选择,基于 TCP 实现,并且前端易用。
如果是原生客户端(如移动端或桌面端):可以直接基于 TCP(如果需要可靠性)或 UDP(如果追求低延迟)进行封装。
如果弹幕的实时性要求极高(如直播场景),UDP + 自定义协议可能是更优选择,但需要额外处理丢包问题。
如果后端要兼顾多个协议,可以考虑 Netty,同时支持 TCP 和 UDP,根据需求适配。
所以,是否选择 TCP 取决于你的需求——如果你愿意在应用层构建丢包处理、重传等逻辑,UDP 确实可以降低开销;否则,WebSocket(基于 TCP)更稳定、更易维护。00
相似问题