一般来说,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就是发送消息到后端的函数

大概就这样

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐