Как сделать функционал просмотра сообщений в чате?
Всем привет, имею приложение на Laravel. Есть функционал диалогов и чат с пользователем, в реальном времени работает только отправка сообщений и показ его собеседнику. Хочу сделать функционал просмотра сообщений, то бишь статус прочитано или не прочитано. Например если человека нет в сети, мы помечаем это каким-то стилем у сообщения, например фоном, как в вк. Но это в принципе я знаю как сделать, используя php, вопрос в другом, как сделать этот функционал логически на стороне vuejs, javascript? Например если пользователь в чате и ему пришло сообщение от собеседника, то сразу читать это сообщение. Если его нет на странице, то соответственно помечать сообщение непрочитанным, какова логика должна быть у этого функционала? Кто-то может подсказать, как вк отлавливает просмотрел ли человек сообщение или нет?
Fluber, дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац).
В противном случае, ваши вопросы будут удаляться по причине тег-спама, а систематические нарушения приведут к блокировке учетной записи.
я не подскажу, как сделано в вк, но я бы делал примерно так:
1. изначально новые сообщения являются непросмотренными/непрочитанными
2. сообщения делаем прочитанными в следующих случаях:
- при открытии диалога
- если был открыт диалог и начался ввод текста в поле для сообщений (ловим onKeyDown, например)
- если был открыт диалог и двигалась мышка в области диалога (ловим mousemove)
возможно, нужны и другие варианты, но это еще и зависит от самого приложения
Fluber, в этом случае я бы оставлял сообщение непрочитанным, пока пользователь не сделает что-нибудь. с большой долей вероятности он просто отошел от компа и поэтому никакой активности не проявляет