如何关闭websocket并释放端口

时间:2013-07-30 14:50:34

标签: javascript google-chrome websocket em-websocket

我在某个端口下打开了websocket,当客户端Web浏览器关闭时,我希望websocket干净地关闭,以便服务器程序继续运行并接受新连接。

现在,我的客户端代码如下:

window.addEventListener('load', function(){
  ws = new WebSocket(url);
  ws.onopen = function(e){...};
  ws.onmessage = function(e){...};
  ws.onerror = function(e){...};
  ws.onclose = function(e){
    alert('Browser Closed');
  };
  window.onbeforeunload = function(e){
    ws.close();
  };
}, false);

当我运行服务器并打开Web浏览器进行连接时,它首次运行。然后,在我关闭浏览器并尝试再次连接后,我收到错误,因为使用了端口。这意味着,当我在第一次连接后关闭浏览器时,websocket ws没有干净地关闭。我使用的是谷歌浏览器,我读到Chrome禁用onbeforeunload,因此绑定到该事件的功能可能无法执行。我可以从警报消息确认浏览器关闭时ws.onclose已执行。如何在关闭浏览器时使websocket干净地关闭并释放端口?我是否也必须在服务器端做一些事情?

0 个答案:

没有答案