webSocket【移动端(uniapp)和PC端(vue2+elementUI)】开箱即用
一、移动端(uniapp)
下面代码复制后,需要改成vue语法即可使用,切记再离开页面是清除定时器,并且
let socketTask = null;
//建立ws链接方法
function initSocket(){
socketTask=uni.connectSocket({
url: `后端给的ws接口地址`, // 替换为你的WebSocket服务器地址
success: () => {
console.log('WebSocket连接成功');
//首次链接成功给服务器发送消息
sendMessageToServer()
// 监听消息接收
socketTask.onMessage((res) => {
console.log('收到服务器消息:', res);
});
// 可以添加更多事件监听,如onOpen, onError, onClose等
},
fail: (err) => {
console.error('WebSocket连接失败', err);
},
});
};
//每隔2分钟给服务器发送消息,保证服务正常
setInterval(() => {
sendMessageToServer();
}, 120000);
//发送消息方法
function sendMessageToServer() {
if (this.socketTask && this.socketTask.readyState === 1) {
this.socketTask.send({
data: '每隔2分钟自动发送的消息',
success: () => {
console.log('消息发送成功');
},
fail: (err) => {
console.error('消息发送失败', err);
},
});
} else {
// console.warn('WebSocket连接未建立,无法发送消息');
}
};
//关闭ws链接方法
function closeWebSocketConnection() {
if (socketTask) {
socketTask.close({
success: () => {
console.log('WebSocket连接已关闭');
},
fail: (err) => {
console.error('关闭WebSocket连接失败', err);
},
});
}
};
一、PC端(vue2+elementUI)
PC端需要定时发送消息,离开页面停止ws链接可以参照移动端的方法去实现
let socket=null
setupWebSocket()
function setupWebSocket() {
socket = new WebSocket("ws://127.0.0.1:8443/v1"); // 替换成你自己的WebSocket地址
socket.onopen = () => {
console.log("WebSocket已连接");
};
socket.onmessage = (event) => {
// 接收到消息后的操作
console.log("接收到消息后", event);
};
socket.onclose = () => {
console.log("WebSocket closed");
// 重新连接的逻辑
};
},