Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。技术选型是结合自身业务选择最适合的技术方案,并不存在褒贬。并发量较低,调优麻烦,存在兼容性问题。SockJS为您提供了一个一致的,跨浏览器的Javascript API,该 API 在浏览器和 Web 服务器之间创建了低延迟,全双工,跨域的通信通道。通常也会配合STOMP来简化其使用。其实Spring 的Websocket组件中采用的就是此协议。Spring Webflux和RSocket就是其中的代表,目前官方已经放出了一些相关的 DEMO。在Spring整合上以及全套解决方案上SockJS更具优势。如果追求高性能、高吞吐量的Websocket那么无疑反应式更加合适,但是学习成本也相对较高。附:性能基准测试以下是国外某论文在 2020 年对原生Websocket、SockJS、Socket.IO进行的性能测试的一些关键指标。

Java开发中常用的 Websocket 技术参考

Java开发中常用的 Websocket 技术参考