一般来说,websocket长连接在登陆时建立,但如果刷新时这个连接就会断开,
一开始我是想把建立的websocket存在sessionStorage中,但发现这玩意根本存不了,
要解决的是
1.刷新后websocket永远有值,如果刷新了就在create中又新建一个websocket
2.在登录后主动创立一个websocket
首先创立一个js类
var websocket = null;
export function Refresh(username) {
if (username == null) {
}
else { websocket = new WebSocket("ws://localhost:8088/ws/" + username); }
}
export function sendsession(message) {
websocket.send(JSON.stringify(message))
}
export function getwebsocket(username){
websocket=new WebSocket("ws://localhost:8088/ws/" + username);
}
Refresh是刷新方法,意思就是如果username为空就拦截,不为空就把websocket创建一个新的类,这个在刷新时调用,主App.vue中的websocket方法就是刷新方法
const username=sessionStorage.getItem("username")
getwebsocket(username);
username就是用户名,在用户登录后就存入sessionstorage中,这里不赘述,如果没登录sessionStorage就没有值,就不创建websocket
getwebsocket就是登录成功后调用的函数,sendsession就是发送消息到后端的函数
大概就这样