如何使用Faye列出活跃订阅者?

jpe*_*thy 7 ruby ruby-on-rails publish-subscribe faye

我正在使用Faye来发送消息,而且效果很好.但我想检索给定频道的活动连接,并且情况有所不同:请参阅" 列出频道上的活动订阅者 ".

我想显示当前用户在一个房间聊天的列表.我试图/meta/subscribe通过扩展拦截频道来做到这一点,但我不太确定如何将用户名等数据发送到服务器.

拦截的消息/meta/subscribe如下所示:

{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"}
Run Code Online (Sandbox Code Playgroud)

发送会很好"username" => "foo".

监控也很有趣,但同样,看起来我无法在订阅上发送任何特定数据.

有没有人有过这类问题的经验?

jco*_*lan 8

您可以使用客户端扩展附加数据:

client.addExtension({
  outgoing: function(message, callback) {
    if (message.channel === '/meta/subscribe') {
      message.ext = message.ext || {};
      message.ext.username = 'username';
    }
    callback(message);
  }
});
Run Code Online (Sandbox Code Playgroud)

然后,您的服务器端扩展可以看到此数据.但是,在实现之前,请阅读以下主题:https://groups.google.com/group/faye-users/msg/53ff678bcb726fc5