Держите подключенных пользователей через страницы сайта, используя nodejs - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть страница администратора со списком активных пользователей.Это работает, но когда «userX» меняется на другую страницу, все клиенты обновляются, не имея «userX» в списке активных пользователей.До 1 секунды «userX» возвращается в список активных пользователей.

КОНСОЛЬ СЕРВЕРА

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

Когда «userX» переключается на другую страницу, запускается nodejs socket.on ('отключить', функция () {}) действие.Это вызывает Клиент отключен ... (изменение UserX на другую страницу внутри приложения) Причина: транспортное закрытие

КОД СЕРВЕРА

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);
    });

});

КОД СТРАНИЦЫ

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

Как сохранить связь пользователя между страницами и запустить отключить только когда браузер закрывается или пользователь выходит из системы?

1 Ответ

0 голосов
/ 20 сентября 2019

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

Для этого вы должны использовать internal routing до load another page.

Проверьте этот ответ Страница загрузки Ajax без обновления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...