直接上代码:
1、封装类
/** +----------------------------------------------------------------------
* | HelloCrab [ Best For You ! ]
* +----------------------------------------------------------------------
* | Copyright (c) 2022~9999 https://www.hellocrab.cn All rights reserved.
* +----------------------------------------------------------------------
* | Licensed 版权归属:HelloCrab
* +----------------------------------------------------------------------
* | Author: HelloCrab
* +----------------------------------------------------------------------
* _ooOoo_
* o8888888o
* 88" . "88
* (| -_- |)
* O\ = /O
* ____/`---'\____
* . ' \\| |// `.
* / \\||| : |||// \
* / _||||| -:- |||||- \
* | | \\\ - /// | |
* | \_| ''\---/'' | |
* \ .-\__ `-` ___/-. /
* ___`. .' /--.--\ `. . __
* ."" '< `.___\_<|>_/___.' >'"".
* | | : `- \`.;`\ _ /`;.`/ - ` : | |
* \ \ `-. \_ __\ /__ _/ .-` / /
* ======`-.____`-.___\_____/___.-`____.-'======
* `=---='
**/
class WebSocketUtil {
constructor(url) {
this.url = url
}
connect() {
this.socket = uni.connectSocket({
url: this.url
})
}
// 监听消息
onMessage(callback) {
uni.onSocketMessage((res) => {
callback(res.data)
})
}
// 发送消息
send(message) {
uni.sendSocketMessage({
data: message
})
}
// 关闭连接
close() {
uni.closeSocket()
}
}
export default WebSocketUtil
2、调用示例:示例场景是 vue3的setup下的写法
import WebSocketUtil from '@/utils/WebSocketUtil'
/*websocket相关字段*/
const webSocketUtil = new WebSocketUtil('wss://your-websocket-url'), receivedMessage = ref('') // 用于显示接收到的消息
// 监听消息
const handleMessage = (message) => {
receivedMessage.value = message.data
}
/*websocket相关字段*/
onMounted(() => {
webSocketUtil.connect()
webSocketUtil.onMessage(handleMessage) // 设置消息回调
})
onBeforeUnmount(()=>{
webSocketUtil.close()
})