// 创建一个this.socketTask对象【发送、接收、关闭socket都由这个对象操作】
var socketTask : any = {}
// 创建一个is_open_socket变量用来判断链接是否成功
var is_open_socket = false
socketTask = uni.connectSocket({
// 后端给你的请求地址,https需要换位wss
url: "wss://请求地址",
success(data) {
// websoke链接成功后把is_open_socket 字段改为true
is_open_socket = true
},
});
// 消息的发送和接收必须在正常连接打开中,才能发送或接收【否则会失败】
if (is_open_socket) {
// onOpen打开连接请求成功后才可接收或发送消息
socketTask.onOpen((res) => {})
}
// 上面的进入项目全局请求一次就可以了,不用重复请求,重复请求会建立多个链接
// 下面的封装成一个方法在你需要的页面随时调用
// websocket接收发送消息
function connectSocketInit(data : any, fn : any) {
// websocket发送消息
// 注:只有连接正常打开中 ,才能正常成功发送消息
socketTask.send({
data: 向服务器发动的消息,
async success(el) {},
});
// websocket接收消息
// 注:只有连接正常打开中 ,才能正常收到消息
socketTask.onMessage((res) => {
// websocket接收到的所有消息都会在这里打印,这里可以写你的业务逻辑
fn.call(this, res);
});
}
// 调用websocket接收发送消息
connectSocketInit(要穿的参数数据,(res)=> { 这里是你的业务逻辑 })
uniapp使用websoke实现聊天通讯
最新推荐文章于 2024-06-06 09:24:44 发布