跨页面的Websocket JavaScript

时间:2014-02-08 09:24:03

标签: javascript websocket

我在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连接。但是,如果我只是在加载时调用此方法,那么我担心每次重新加载页面时都会建立新连接,这是一个问题吗?无论如何,有一次连接并在不同页面和页面重新加载时使用它吗?

由于

3 个答案:

答案 0 :(得分:1)

您可以通过从共享后台Web工作者打开WebSocket连接来执行此操作。

当(共享Web工作者)的给定来源至少有一个选项卡仍处于活动状态时,WebSocket连接将保持打开状态。

我知道Chrome和IE11支持从专门的Web工作者打开WebSocket连接。 Firefox目前没有。我不知道哪些浏览器支持来自共享 Web worker的WebSocket连接(这是您需要的)。

答案 1 :(得分:0)

这不会有任何问题。因为每次页面重新加载页面时都会松动连接并建立新的连接。

你的另一个问题的答案“无论如何,一旦建立连接并在不同的页面和页面重新加载中使用它”是没有的。页面重新加载后,您无法在整个页面中使用相同的连接。

答案 2 :(得分:0)

如果用户更改了网页,则无法保持连接打开状态。