Как мне перечислить активные подписчики с использованием Faye?
-
26-10-2019 - |
Вопрос
я использую Фэй Для отправки сообщений, и это работает хорошо. Но я хочу получить активные соединения для данного канала, и вещи ведут себя немного по -другому: см.Перечислите активные подписчики на канале".
Я хочу показать список нынешних пользователей, общающихся в комнате. Я пытался сделать это, перехватив /meta/subscribe
канал через расширения Но я не совсем уверен, как отправлять данные как имя пользователя на сервер.
Перехваченное сообщение /meta/subscribe
Похоже:
{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"}
Было бы неплохо отправить "username" => "foo"
.
Мониторинг Также интересно, но, опять же, похоже, что я не могу отправить какие-либо конкретные данные на подписке.
У кого -нибудь есть опыт работы с такими проблемами?
Решение
Вы можете подключить данные, используя расширение на стороне клиента:
client.addExtension({
outgoing: function(message, callback) {
if (message.channel === '/meta/subscribe') {
message.ext = message.ext || {};
message.ext.username = 'username';
}
callback(message);
}
});
Затем эти данные будут видны для вашего расширения на стороне сервера. Однако, прежде чем реализовать это, прочитайте эту ветку: https://groups.google.com/group/faye-users/msg/53ff678bcb726fc5
Другие советы
Рассматривали ли вы создание канала для периодической публикации, на какой канал в настоящее время подписан пользователь? Вы можете думать об этом как сердцебиение/пинг с дополнительной информацией о состоянии, например, к какому пользователю и каналу они могут быть подписаны.