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
Post a Comment