react和redux使用websocket

    近期,小编在网上搜索各种资料,呕心沥血,终于初步在react中加入了websocket!长话短说,现在npm包结构的websocket很多,如果是node服务端,或者服务端用node做中间层,可以考虑socket.io,小编这里给大家介绍一种万金油的方案,sockjs-client和stompjs。sockjs-client用了1.0.0,stompjs用了2.2.3,需要后端配合,小编只写前端代码!代码和官方文档介绍的差不多,唯一不同的是我们需要一个断线重连,和储存socket建立链接后的实例,已经增加取消订阅!

     

    看到上图代码,聪明的你,有没有大彻大悟,瞬间有一种醍醐灌顶的感觉,看小编一席代码,是不是感觉以前都白活了!好了,不扯淡了,initstompClient只是初始化了一个实例对象,并且进行了设置,_this其实就是this,指针指向你的某个react组件,也就是说你在某个react组件中调用了wsConnectAndReconnect方法,然后把websocket实例赋予了组件中的stompClient变量,方便调用!至于定时器那段,其实就是个短线重连,防止用户因为网络原因链接不上!

     然后就是订阅和发送,这个就按照业务需求了,现在只需要把stompClient变量存储就好啦,于是我们想到了redux,具体代码就不贴了,大家把stompClient存储进redux,于是就变成了哪里想调用,就从哪里取了。当然,大家别忘了在不需要的时候及时断开websocket链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值