socketjs, stomp-client,react, redux-observable 搭建一个基于stomp over websocket的前端服务

 

最近小编接到一项紧急任务:国外同事让让我三天搭建一个基于stomp 协议的websocket服务。这项服务允许用户在切换region的时候订阅后端对应的topic. 看完这篇文章你将了解什么是stomp over websocket,如何订阅topic,如何取消订阅topic以及如何将rxjs 与stomp 融合78/100

  1.  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版权协议,转载请附上原文出处链接和本声明。