一、websocket 建立即时通讯
WebSocket是什么(简述)
微信的WebSocket
接口和HTML5的WebSocket
基本一样,是HTTP协议升级来的,做为一个新的Socket
在B/S上使用,它实现了浏览器与服务器全双工通信。
因为这里是做小程序,所以就不对WebSocket
的底层和协议做过多的说明了,只是稍微介绍一下。想了解详细的WebSocket
可以参考如下:
小程序自带一套websocket的接口文档
具体方法如下:
wx.connectSocket(OBJECT)
创建一个 WebSocket 连接。
wx.onSocketOpen(CALLBACK)
监听WebSocket连接打开事件。
wx.onSocketError(CALLBACK)
监听WebSocket错误。
wx.sendSocketMessage(OBJECT)
通过 WebSocket 连接发送数据,需要先 wx.connectSocket,并在 wx.onSocketOpen 回调之后才能发送。
wx.onSocketMessage(CALLBACK)
监听WebSocket接受到服务器的消息事件。
wx.closeSocket(OBJECT)
关闭 WebSocket 连接。
二、使用过程
了解websocket 各种消息方法之后,我们需要注意以下几点
1. 需要定时心跳
定时心跳,按各种情况设置为10-20秒。心跳作用:通知后台保活,如果停止心跳消息,后台会主动断开,走断开流程。
2.重连机制
使用过程中,可能因为网络问题,导致websocket断开连接,首先更具业务需求,判断是否需要重连,如果要重连不建议立刻重连,可做一个延迟操作,再进行重连。
3.其他
sendSocketMessage,data必须是String或者是ArrayBuffer,不然在IOS上会报错。
connectSocket,connect的时候,data要带一点参数data: { EIO: '4', transport: 'websocket' }