Я создаю веб-сервис для мобильного приложения. Мне нужно знать, какие мобильные пользователи онлайн. Я реализовал это с помощью Laravel echo- laravel echo server-socket io и redis. Все работает, и по каналу присутствия клиент прослушивает события.
Проблема в том, что события выхода и соединения находятся на стороне клиента, а когда пользователь покидает канал, мне нужно удалить его из списка. хранится в Redis, на самом деле мне нужно знать, что из присоединения или выхода происходит на стороне сервера, а не на стороне клиента, чтобы иметь возможность обновлять пользователей онлайн в Redis.
Как я могу это сделать?
Мои решения
Решение 1
Если есть какая-либо реализация метода here
на стороне сервера, которая возвращает онлайн-пользователей, он может работать, фактически я могу сравнить мой список с here
для получения последнего обновления.
Решение 2
Когда событие происходит для пользователя, если этот пользователь уже существует в моем списке в Redis, очевидно, что это Покинуть событие, потому что пользователи могут быть в сети ровно один раз в любой момент, и если пользователя нет в списке, значит, это должно быть соединение, потому что никто не может присоединиться, если он уже есть в списке.
чем заранее.