0

I have admin page with active users list. It works but when "userX" change to another page all clients are updated having no "userX" in active users list. Before 1 secound "userX" returns to active users list.

SERVER CONSOLE

UserX connected...
UserX disconnected... (UserX change to another page inside application)
Reason: transport close
UserX connected... (Because main layout force connection) 

When "userX" change to another page nodejs fires socket.on('disconnect',function(){}) action. This causes Client disconnected... (UserX change to another page inside application) Reason: transport close

SERVER CODE

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(81, function () {
    console.log('NodeJs listening on port:81');
});


io.on('connection', function (socket) {
    console.log('New client connected...');

    socket.on('disconnect', function (reason) {
        console.log('Client disconnected...');
        console.log('Reason: ' + reason);
    });

});

PAGE CODE

 <script type="text/javascript">
            var socket = io(':81', {forceNew: true});
 </script>

How to keep user connected between pages and fire disconnect only when browser get closed or user get logging out?

1 Answers1

0

If you are using page redirect for change the page then page will be refreshed.And every time when page got refreshed the socket will disconnect.

For that, you have to use internal routing to load another page.

Check this answer Ajax load page without refresh

Nayan
  • 1