Laravel socket io laravel -echo: получить количество подписанных пользователей на канал - PullRequest
0 голосов
/ 01 апреля 2020

Я создаю приложение реального времени Laravel эхо-сервером, socket.io, redis. Мне нужно знать, сколько пользователей подписываются на определенный канал. Как я могу это сделать?

1 Ответ

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

См. Присоединение к каналам присутствия и обратите внимание на метод here channel, который он возвращает, и список массивов users онлайн.

Вы можете использовать users.length чтобы получить счетчик онлайн и установить его в переменной.

Затем вам нужно использовать хуки joining и leaving для увеличения (++) и уменьшения (-) счетчика.


const totalOnline = 0;

Echo.join(`chat.${roomId}`)
    .here((users) => {
        totalOnline = users.length
    })
    .joining((user) => {
        totalOnline++;
    })
    .leaving((user) => {
        totalOnline--;
    });

...