Как мне перечислить активных подписчиков, использующих Faye? - PullRequest
7 голосов
/ 10 января 2012

Я использую Faye для отправки сообщений, и это работает хорошо.Но я хочу получить активные соединения для данного канала, и все происходит немного иначе: см. « список активных подписчиков на канале ».

Я хочу показать список текущихпользователи общаются в комнате.Я пытался сделать это путем перехвата канала /meta/subscribe через extensions , но я не совсем уверен, как отправить данные, такие как имя пользователя, на сервер.

Перехваченное сообщение на /meta/subscribe выглядит так:

{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"}

Было бы неплохо отправить "username" => "foo".

Мониторинг тоже интересно, но опять же, похоже, что я могуНе отправляйте какие-либо конкретные данные по подписке.

У кого-нибудь есть опыт решения подобных проблем?

Ответы [ 2 ]

8 голосов
/ 20 января 2012

Вы можете прикрепить данные, используя расширение на стороне клиента:

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

4 голосов
/ 12 января 2012

Рассматривали ли вы создание канала для периодической публикации, на какой канал подписан пользователь?Вы можете думать об этом как о сердцебиении / пинге с дополнительной информацией о состоянии, например, на какого пользователя и канал он может быть подписан.

...