最近小编接到一项紧急任务:国外同事让让我三天搭建一个基于stomp 协议的websocket服务。这项服务允许用户在切换region的时候订阅后端对应的topic. 看完这篇文章你将了解什么是stomp over websocket,如何订阅topic,如何取消订阅topic以及如何将rxjs 与stomp 融合78/100
- stomp与websocket不同之处
websocket 允许双方通信,但是它并没有明确哪种传输协议,它是TCP协议上非常薄的层。而stomp 派生于websocket, stomp 为websocket 在前端与后端之间通信提供了不同的方法比如websocket, polling,xhr-streaming等。
2. 新建前端stompClient并建立连接(connect, disconnect)
_connectWebsocket=url=>{
//新建stompClient并且指定协议
let socket=(this.websocket=new SocketJS(url, null,{transports:['xor-polling']})),
stompClient=(this.stompClient)=Stomp.over(socket)
//建立连接
stompClient.connect(this.headers,()=>{
//可以连接成功之后就在此处订阅数据
})
//是否显示订阅topic log
stompClient.debug=()=>{}
//当连接中断
stompClient.onclose=()=>{
this.stompClient.disconnect()
}
}版权声明:本文为red_heel原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。