164人参与 • 2024-08-03 • uniapp
使用uniapp封装websocket请求
大同小异,vue封装也差不多
request.js文件
const socketbaseurl = 'wss://test.com/xxxxxdfjksdjfl' //后端给你的socket接口
export function websocket(url, data, readcb, messagecb, finishedcb) {
//开始连接websocket
const sockettask = uni.connectsocket({
url: socketbaseurl + url + data.id //socket接口和地址和后端需要你传的内容
success: res => console.log(res), //请求成功
fail: e => console.log(e) //请求失败
})
//websocket 连接打开事件
sockettask.onopen(res => {
//连接后发送数据
sockettask.send({
data: data.datastr
})
//返回
readcb(res, sockettask)
})
//websocket 接收到服务器的消息事件
sockettask.onmessage(res => {
//返回
messagecb(res, sockettask)
})
//websocket 错误事件
sockettask.onerror(e => {
console.log('socket error: ', e)
})
}
//导出接口
export const sendapi = (data, readcb , messagecb ,finishedcb) => websocket('/message/', data, readcb, messagecb, finishedcb)
使用:
例:test.js
import { sendapi } from '@/request.js';
export default{
data(){
return{
sockettask:'',
}
},
methods:{
handle(){
//传给后端的数据
let info = {id:5,datastr:'test'}
//调接口
sendapi(
info,
(_, sockettask) => {
//调取赋值socket,用于后面关闭连接
this.sockettask = sockettask;
},
(res) => {
try {
//解析返回数据
const socketres = json.parse(res.data)
//打印返回数据
console.log(socketres)
//接收返回的数据后,关闭socket
this.sockettask.close();
} catch (e) {
// 返回异常,关闭socket
this.sockettask.close();
}
}
)
};
}
}
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论