|
|
@@ -4,6 +4,7 @@ import { ElMessage } from "element-plus";
|
|
|
import {
|
|
|
msgSend
|
|
|
} from "@/api/chat/msg";
|
|
|
+const heartTimer = null
|
|
|
const useWebsoctStore = defineStore('websoct', {
|
|
|
state: () => ({
|
|
|
messages: [],
|
|
|
@@ -25,9 +26,9 @@ const useWebsoctStore = defineStore('websoct', {
|
|
|
}
|
|
|
this.socket.addEventListener("open", () => {
|
|
|
// console.log("WebSocket连接已打开")
|
|
|
- setInterval(() => {
|
|
|
+ heartTimer = setInterval(() => {
|
|
|
this.sendHeartbeat();
|
|
|
- }, 5000); // 每隔5秒发送一次心跳消息
|
|
|
+ }, 30000); // 每隔30秒发送一次心跳消息
|
|
|
})
|
|
|
|
|
|
this.socket.addEventListener("message", (event) => {
|
|
|
@@ -46,11 +47,13 @@ const useWebsoctStore = defineStore('websoct', {
|
|
|
// console.log("WebSocket连接已关闭")
|
|
|
ElMessage({ message: "WebSocket重连失败,请尝试刷新界面", type: "error" });
|
|
|
this.reconnect(url); //尝试重新连接
|
|
|
+ clearInterval(heartTimer)
|
|
|
})
|
|
|
|
|
|
this.socket.addEventListener("error", (error) => {
|
|
|
ElMessage({ message: "WebSocket连接错误", type: "error" });
|
|
|
this. reconnect(url); //尝试重新连接
|
|
|
+ clearInterval(heartTimer)
|
|
|
})
|
|
|
},
|
|
|
sendMessage(message) {
|
|
|
@@ -81,10 +84,10 @@ const useWebsoctStore = defineStore('websoct', {
|
|
|
}, 2000);
|
|
|
},
|
|
|
sendHeartbeat() {
|
|
|
- // if (this.socket && this.socket.readyState === WebSocket.OPEN) {
|
|
|
+ if (this.socket && this.socket.readyState === WebSocket.OPEN) {
|
|
|
// // 发送心跳消息,可以是一个特定的字符串,表示心跳消息
|
|
|
- // this.socket.send("heartbeat");
|
|
|
- // }
|
|
|
+ this.socket.send("heartbeat");
|
|
|
+ }
|
|
|
},
|
|
|
handleMessage(event) {
|
|
|
console.log('event', event)
|