我在JS中实现了一个基本的websockets客户端:
function connectToNotifServer(){
var conn = new WebSocket('ws://localhost:8080');
conn.onopen = function(e) {
alert("Connection established!");
conn.send(JSON.stringify({user_id: sessionStorage.getItem("user_id")}));
};
conn.onmessage = function(e) {
alert(e.data);
};
conn.onclose = function(e) {
alert("Connection closed!");
};
return conn;
}
但我想在页面上使用websocket连接。但是,如果我只是在加载时调用此方法,那么我担心每次重新加载页面时都会建立新连接,这是一个问题吗?无论如何,有一次连接并在不同页面和页面重新加载时使用它吗?
由于
答案 0 :(得分:1)
您可以通过从共享后台Web工作者打开WebSocket连接来执行此操作。
当(共享Web工作者)的给定来源至少有一个选项卡仍处于活动状态时,WebSocket连接将保持打开状态。
我知道Chrome和IE11支持从专门的Web工作者打开WebSocket连接。 Firefox目前没有。我不知道哪些浏览器支持来自共享 Web worker的WebSocket连接(这是您需要的)。
答案 1 :(得分:0)
这不会有任何问题。因为每次页面重新加载页面时都会松动连接并建立新的连接。
你的另一个问题的答案“无论如何,一旦建立连接并在不同的页面和页面重新加载中使用它”是没有的。页面重新加载后,您无法在整个页面中使用相同的连接。
答案 2 :(得分:0)
如果用户更改了网页,则无法保持连接打开状态。