Получить количество пользователей, подписавшихся на канал-пушер - PullRequest
0 голосов
/ 06 апреля 2020

Я реализую приложение, используя vue. js и Pusher (для многопользовательского общения в реальном времени). Приложение обеспечивает, чтобы каждый пользователь аутентифицировал себя (обращаясь к домашней странице), и перед запуском он устанавливает некоторые параметры на домашней странице (о своей роли в приложении). Подписка на общий канал-пушер осуществляется при доступе к компоненту домашней страницы. Мне нужно, чтобы каждый пользователь не мог ничего выбрать на домашней странице, пока все остальные пользователи не подпишутся на канал (доступ к домашней странице), то есть раздел настроек на домашней странице должен быть включен для всех пользователей, только если все подписан на канал. Я новичок в Pusher, и в документации Pusher я обнаружил, что есть способ получить номер пользователя, подписанного на канал (на котором можно выполнить управление для достижения моей цели), используя свойство «subscription_count» после включения такая возможность есть в разделе «Настройки приложения» на панели инструментов. В частности, это то, что я нашел: https://pusher.com/docs/channels/library_auth_reference/rest-api (в параграфе «GET channel (получить информацию для одного канала)»). Однако я не понимаю, могу ли я получить подписку непосредственно через экземпляр канала с таким синтаксисом: pusher.info.subscription_count , где "pusher":

 const pusher = new Pusher('********', {
    cluster: 'eu',
    encrypted: true,
    authEndpoint: 'https://*****/pusher/auth'
  })

или если я должен использовать другой синтаксис. Кроме того, я хочу знать, динамически ли обновляется это свойство, чтобы включить раздел настроек (например, используя условие v-if, основанное на количестве подписок), только если число равно заданному значению c. Я надеюсь, что вы можете мне помочь.

1 Ответ

0 голосов
/ 06 апреля 2020

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

Вы подписываетесь на канал присутствия на клиенте, подписываясь на канал с префиксом присутствия.

Существует несколько функций каналов присутствия, которые должны помочь удовлетворить ваши требования:

1) Когда клиент подписывается на канал присутствия, ему будет присвоен идентификатор пользователя в ответе аутентификации (так что вы можете точно отслеживать, кто "подписался"). В отличие от количества подписок, количество подписок одного и того же пользователя не будет учитываться дважды

2) Когда клиент подписывается на канал присутствия, наряду с успешным событием подписки он получает объект members , который возвращает содержит список всех участников, уже присутствующих на канале. Это означает, что от клиента вы можете точно получить существующее количество пользователей.

3) Вы можете связать member_added и member_removed. Это будет вызывать обратный вызов каждый раз, когда кто-то присоединяется или покидает канал. Каждый раз, когда участник добавляется в канал, вы можете обновлять счет, пока он не достигнет необходимого числа

...