javascript - Node.js: socket.io close client connection -


how can close socket connection on client side?

i using:

  • socket.io 0.9
  • node.js 0.10.15
  • express 3.3.4

i.e.: call localhost/test
-- server side

var test = io .of('/test') .on('connection', function (socket) {    console.log('open socket: ' + socket);    socket.on('disconnect', function () {     console.log('disconnected event');     //socket.manager.onclientdisconnect(socket.id); --> endless loop disconnect event on server side     //socket.disconnect(); --> same here   }); }); 

-- client side

var socket = io.connect('http://localhost:3000/test'); socket.on('disconnect', function () {    console.log('disconnect client event....'); });  socket.emit('getinitdata', function (data) {   .. data }); 

if load test-page need values server (getinitdata).
on first page visit data once, on reload or second visit twice , on.

the connection on server side beeing closed automatically on page reload , if leave page.
on client side connection still open.
how can close connection on client side or check if there open connection?

update
tried following: (client side)

window.onbeforeunload = function(e) {   socket.disconnect(); }; 

this triggers on client side disconnect event, still twice or tripple response.

there no such thing connection on server side and/or browser side. there 1 connection. if 1 of sides closes it, closed (and cannot push data connection closed obviously).

now browser closes connection when leave page (it not depend on library/language/os using on sever-side). @ least true websockets (it might not true long polling because of keep-alive hopefuly socket.io handles correctly).

if problem happens, i'm pretty sure there's bug in own code (on server side). possibly stacking event handlers should not.


Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

jquery - How would i go about shortening this code? And to cancel the previous click on click of new section? -