我正在使用一个名为PrivatePub的红宝石宝石,它使用Faye提供 PubSub 消息传递
PrivatePub gem 提供了几个基于视图的助手来订阅/向特定主题发送消息。我希望扩展 PrivatePub 以包含一个 API 调用,该调用将为我提供连接到 Faye 的每个当前订阅对象的 ID。有人可以解释如何实现这一点或帮助我找到另一种方法来计算 PrivatePub api 的所有当前订阅。
我正在使用一个名为PrivatePub的红宝石宝石,它使用Faye提供 PubSub 消息传递
PrivatePub gem 提供了几个基于视图的助手来订阅/向特定主题发送消息。我希望扩展 PrivatePub 以包含一个 API 调用,该调用将为我提供连接到 Faye 的每个当前订阅对象的 ID。有人可以解释如何实现这一点或帮助我找到另一种方法来计算 PrivatePub api 的所有当前订阅。
从 0.7 版开始,Faye 包含一个 API,用于监控引擎内正在进行的活动。这意味着您可以附加事件侦听器来监视客户端会话的创建和销毁,了解客户端何时订阅和取消订阅频道,并查看发布的消息。
您将事件侦听器附加到您的服务器,如下所示:
var bayeux = new Faye.NodeAdapter({mount: '/faye', timeout: 45})
bayeux.on('handshake', function(clientId) {
// event listener logic
})
可用的事件是:
handshake [clientId] – 当新客户端连接并获得 ID 时触发。
subscribe [clientId, channel] – 当客户端订阅频道时触发。如果收到已存在订阅的 /meta/subscribe 消息,则不会触发。
unsubscribe [clientId, channel] – 当客户端取消订阅频道时触发。这可能是因为客户端显式发送了 /meta/unsubscribe 消息,或者因为它的会话被服务器超时。
publish [clientId, channel, data] – 发布非/meta/** 消息时触发。包括发布者的客户端 ID(可能为 null)、消息发送到的通道和数据负载。
disconnect [clientId] – 当客户端会话结束时触发,因为它显式发送了 /meta/disconnect 消息,或者因为它的会话被服务器超时。
我希望这个对你有用