Проверка, что другие пользователи просматривают эту страницу в Узле Express - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть приложение NodeJs Express, и когда конкретный пользователь переходит на страницу / маршрут, он хотел бы определить и отобразить, просматривает ли страница в данный момент другой пользователь. Так, например, там будет написано: «Джерри сейчас просматривает эту страницу», и кто-то другой заходит туда.

Есть ли какой-нибудь простой / легкий способ сделать это?

1 Ответ

1 голос
/ 20 апреля 2020

Во-первых, на обычной веб-странице сервер знает только, кому и когда была запрошена страница. Он сам по себе не знает, просматривает ли этот пользователь эту страницу или нет. Пользователь мог закрыть браузер, набрать что-то еще в строке URL, компьютер мог перейти в спящий режим и т. Д. c ...

Второй выключен, даже если страница все еще отображается в браузер, вы не можете знать, есть ли кто-то на самом деле за компьютером или нет. Лучшее, что вы можете сделать, это попытаться отслеживать активность на этой веб-странице (последний щелчок мыши, последние движения мыши по веб-странице и т. Д. c ...).

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

  1. У вас может быть несколько Javascript на веб-странице, которые регулярно (скажем, раз в несколько минут) отправляют небольшой маленький ajax звонок ваш сервер, который в основном просто говорит "я все еще здесь". Он не узнает сразу, когда они покинут страницу, но если сервер обнаружит, что обычный каждые несколько минут ajax звонок не поступил, тогда сервер может изменить статус этого пользователя на этой странице, чтобы он больше не существовал. .

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

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