2014-02-08 3 views
3

Я внедривших клиента основные WebSockets в JS:WebSocket по страницам JavaScript

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 на странице. Однако, если я просто вызываю этот метод при загрузке, то меня беспокоит, что новое соединение будет производиться каждый раз, когда страница перезагружается, это проблема ?. В любом случае, чтобы установить соединение один раз и использовать его на разных страницах и перезагрузках страниц?

Thanks

ответ

1

Вы можете сделать это, открыв соединение WebSocket от общего веб-рабочего пользователя.

Соединение с WebSocket будет оставаться открытым, если по крайней мере одна вкладка по-прежнему активна для данного источника (совместно используемого веб-рабочего).

Я знаю, что поддержка Chrome и IE11 открывает соединения WebSocket от выделенных веб-работников. Firefox сейчас нет. Я не знаю, какие браузеры поддерживают соединение с WebSocket от , общие Работники Web (это то, что вам нужно).

+0

Ницца, я не знал, что вы можете это сделать – user3259045

0

У этой проблемы не будет проблем. Поскольку каждый раз, когда страница перезагружается, страница потеряет соединение и установит новое соединение.

И ответ на другой вопрос «Есть ли способ, чтобы сделать соединение один раз и использовать его на разных страницах и перезагрузках страниц» - нет. Вы не можете использовать одно и то же соединение через страницу после перезагрузки страницы.

+0

Это совершенно неэффективно .. по-моему .. – user3259045

0

Вы не можете сохранить соединение открытым, если пользователь меняет страницы.

Смежные вопросы