uniapp中使用websocket

1,560 阅读1分钟
一、应用场景
本人是在uniapp实现推送用到了websocket,主要要实现的功能是长连接,告诉后端我是不是在线。
二、实现过程
1、首先创建一个websocket长连接

image.png

2、监听WebSocket连接打开事件

image.png

3、通过WebSocket连接发送数据,需要注意的是要先uni.connectSocket,并在uni.onSocketOpen 回调之后才能发送。

image.png

4、其他api
    uni.onSocketError(CALLBACK) 监听错误
    uni.connectSocket(CALLBACK) 监听接收到服务器的消息事件
    uni.onSocketClose(CALLBACK) 监听关闭
   
5、注意事项
    网络请求的 超时时间 可以统一在 manifest.json 中配置 networkTimeout。
    App平台,2.2.6以下的版本,不支持 ArrayBuffer 类型的数据收发。老版本不愿升级也可以使用 plus-websocket插件 插件替代。
    App平台自定义组件模式下,以及支付宝小程序下,所有 vue 页面只能使用一个 websocket 连接。App下可以使用 plus-websocket 插件替代实现多链接。App平台,2.2.6+起支持多个socket链接,数量没有限制。
    微信小程序平台1.7.0 及以上版本,最多可以同时存在5个WebSocket 连接。老版本只支持一个socket连接
    百度小程序平台自基础库版本 1.9.4 及以后支持多个socket连接。老版本只支持一个socket连接
    QQ小程序平台最多支持同时存在5socket链接