代码拉取完成,页面将自动刷新
同步操作将从 OkCoder/uni-socket-promise 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
npm i @i5920/uni-socket-promise -S
import UniSocketPromise from "@i5920/uni-socket-promise"
export default {
onLaunch() {
this.globalData.socket = new UniSocketPromise({
url: "ws://127.0.0.1:8080",
heartTime: 1 * 60 * 1000, // 心跳时间间隔
isHeartData: true, // 是否发送心跳
isReconnect:true, // 是否断线重连
reConnectTime: 3000, // 断线重连检测时间间隔
debug: process.env.NODE_ENV === "development", // debug
onSocketOpen: header => {},
onSocketError:res => {},
onSocketClose:res => {},
onSocketMessageAfter: (data, pool) => {
if (data.error === 0) {
pool.resolve(data);
} else {
pool.reject(data);
}
}
});
},
// 必须在这里调用initSocket方法
onShow() {
// 连接socket
this.globalData.socket.initSocket();
// 登录
this.loginDemo();
},
methods:{
// 发送socket消息
loginDemo(){
this.globalData.socket.send("login",{
"username":"okcoder",
"password":"666666"
},{
'token':"12345"
}).then(_=>{
console.warn(_)
});
},
// 主动关闭socket
closeSocket(){
this.globalData.socket.close();
}
}
}
// 其它页面
getApp().globalData.socket.send("事件名称",{
"username":"okcoder",
"password":"666666"
}).then(_=>{
console.warn(_)
});
{
event:"标识", // 要求根据前端发送的数据进行组合加密 -> md5(事件名称字符串+参数字符串)
data:{ // 自定义数据
error:0,
data:[]
}
}
// 以PHP为列子 JSON_UNESCAPED_SLASHES + JSON_UNESCAPED_UNICODE 必须加上,比如PHP可能会对url加反斜杠,中文编码
// event的值为
md5('前端发来的事件名称' . (string)json_encode('前端发来的参数', JSON_UNESCAPED_SLASHES + JSON_UNESCAPED_UNICODE));
// data的值 自定义 比如
{
event:"****",
data:{
'error':0,
'data':[]
}
}
initSocket(success, fail)
send(event,data,extraData)
close({code,reason,success,fail,complete})
如果发送其它格式的消息直接使用uni.sendSocketMessage()
参数 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
url | string | 是 | - | websocket地址,如ws://127.0.0.1:8080
|
debug | boolean | 否 | 开发环境自动打开 | 调试开关 |
header | object | 否 | - | 参考https://uniapp.dcloud.io/api/request/websocket?id=connectsocket |
method | string | 否 | - | 参考https://uniapp.dcloud.io/api/request/websocket?id=connectsocket |
protocols | string[] | 否 | - | 参考https://uniapp.dcloud.io/api/request/websocket?id=connectsocket |
isReconnect | boolean | 否 | true | 是否断线重连 |
reConnectTime | number | 否 | 3000 | 断线重连间隔时间,毫秒 |
isHeartData | boolean | 否 | true | 是否发送心跳 |
heartTime | number | 否 | 3000 | 心跳包间隔事件,毫秒 |
回调方法 | 参数 | 说明 |
---|---|---|
onSocketOpen | callback(header) | 监听到socket打开事件 |
onSocketClose | callback(res) | 监听到socket被关闭事件 |
onSocketError | callback(res) | 监听到socket出错事件 |
onSendMessageBefore | callback(message) | 发送消息前事件,必须返回{event:"",data:''},因为要继续下面的逻辑 |
onSendMessageAfter | callback(message) | 发送消息后事件 |
onSocketMessageBefore | callback(data) | 收到消息前事件,如果返回true则继续逻辑,返回false则终止逻辑,千万注意如果要继续逻辑必须返回true |
onSocketMessageAfter | callback(data,pool) | data为接收到的数据,pool为当前线程池,含promise方法 |
v2.0.16
v2.0.14
v2.0.13
v2.0.12
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。