封装webSocket(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(); 
						}
					}
			)
			
		};
	}


}



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值