7

我正在使用Faye发送消息,效果很好。但是我想检索给定频道的活动连接,并且事情的行为有点不同:请参阅“列出频道上的活动订阅者”。

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

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

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

送过来就好了"username" => "foo"

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

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

4

2 回答 2

8

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

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

于 2012-01-19T22:12:29.773 回答
4

您是否考虑过创建一个频道来定期发布用户当前订阅的频道?您可以将其视为带有附加状态信息的心跳/ping,例如他们可能订阅的用户和频道。

于 2012-01-12T16:14:38.827 回答