前言
需求:使用websocket的及时通讯实现直播间的评论、加入直播间、离开直播间、点赞、关注、商品上下架等操作能实时通知对方。
什么是WebSocket
首先需要明白webSocket的概念,下边是维基百科的解释
WebSocket是一种通信协议,可在单个TCP连接上进行全双工通信。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。
websocket API
wx.connectSocket:创建一个 WebSocket 连接 ;
sotk.onOpen:监听 WebSocket 连接打开事件 ;
sotk.onClose:监听 WebSocket 连接关闭事件 ;
sotk.onError:监听 WebSocket 错误事件 ;
sotk.onMessage:监听 WebSocket 接受到服务器的消息事件 ;(重要:负责监听接收数据)
sotk.send:通过 WebSocket 连接发送数据 。(重要:负责发送数据)
使用案例如下:
1 | var sotk = null; |
实现逻辑
1、通过onMessage监听收到的信息,接收到的信息会返回一个type值,通过type值判断接收到的数据是什么数据,之后分别进行处理、赋值即可;
2、通过sendSocketMessage发送数据,根据后端定义的字段发送请求,字段中也包含type值,告诉websocket是处理什么类型的值。
关键代码如下:
1 | webSokcketMethods(e) { |
心跳检测、断线重连
在实际应用中,需要不断判断websocket处于连接阶段。
wechat-websocket.js文件
1 |
|
参考链接:
微信官方文档
微信小程序心跳