我在用着 Faye 用于调度消息,它运行良好。但是我想检索给定渠道的主动连接,并且事情的行为有所不同:看到”在频道上列出活动订户".

我想显示在房间里聊天的当前用户列表。我试图通过拦截 /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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top