1 什么是 SockJS /Socket.IO
有一些浏览器中缺少对 WebSocket 的支持,而 SockJS 是一个浏览器的 JavaScript
库,它提供了一个类似于网络的对象,SockJS 提供了一个连贯的,跨浏览器的
JavaScriptAPI,它在浏览器和 Web 服务器之间创建了一个低延迟、全双工、跨域
通信通道。SockJS 的一大好处在于提供了浏览器兼容性。即优先使用原生
WebSocket,如果浏览器不支持 WebSocket,会自动降为轮询的方式。如果你使
用 Java 做服务端,同时又恰好使用 Spring Framework 作为框架,那么推荐使用
SockJS。
如果你使用 Node.js 做服务端,那么毫无疑问你该选择 Socket.IO,它本省就是从
Node.js 开始的,当然服务端也提供了 engine.io-server-java 实现。甚至你可以使
用 netty-socketio。
2 Stomp 协议
2.1 简单什么是 Stomp?
STOMP 中文为“面向消息的简单文本协议”,STOMP 提供了能够协作的报文格
式,以至于 STOMP 客户端可以与任何 STOMP 消息代理(Brokers)进行通信,从
而为多语言,多平台和 Brokers 集群提供简单且普遍的消息协作。STOMP 协议可
以建立在 WebSocket 之上,也可以建立在其他应用层协议之上。通过 Websocket
建立 STOMP 连接,也就是说在 Websocket 连接的基础上再建立 STOMP 连接。
业界已经有很多优秀的 STOMP 的服务器/客户端的开源实现
评论0