gpt4 book ai didi

ruby-on-rails - 如何在 rails 中使用 PrivatePub 和 Faye 查找当前订阅的数量

转载 作者:数据小太阳 更新时间:2023-10-29 07:33:38 28 4
gpt4 key购买 nike

我正在使用一个名为 PrivatePub 的 ruby gem这使用 Faye提供 PubSub 消息传递

PrivatePub gem 提供了几个基于 View 的助手来订阅/发送消息到特定主题。我希望扩展 PrivatePub 以包括一个 API 调用,它将为我提供连接到 Faye 的每个当前订阅对象的 ID。有人可以解释一下这是如何实现的,或者帮助我找到另一种方法来计算 PrivatePub api 中的所有当前订阅。

最佳答案

从 0.7 版开始,Faye 包含一个 API,用于监控引擎内正在进行的事件。这意味着您可以附加事件监听器来监视客户端 session 的创建和销毁,了解客户端何时订阅和取消订阅 channel ,以及查看已发布的消息。

您可以像这样将事件监听器附加到您的服务器:

var bayeux = new Faye.NodeAdapter({mount: '/faye', timeout: 45})

bayeux.on('handshake', function(clientId) {
// event listener logic
})

可用的事件有:

  • handshake [clientId] – 在新客户端连接并获得 ID 时触发。

  • subscribe [clientId, channel] – 当客户订阅 channel 时触发。如果收到已存在订阅的/meta/subscribe 消息,则不会触发此事件。

  • unsubscribe [clientId, channel] – 当客户取消订阅 channel 时触发。这可能会触发,因为客户端明确发送了/meta/unsubscribe 消息,或者因为它的 session 被服务器超时。

  • publish [clientId, channel, data] – 在发布非/meta/** 消息时触发。包括发布者的客户端 ID(可能为空)、消息发送到的 channel 和数据负载。

  • disconnect [clientId] – 在客户端 session 结束时触发,可能是因为它明确发送了/meta/disconnect 消息,也可能是因为它的 session 被服务器超时了。

希望对你有帮助

关于ruby-on-rails - 如何在 rails 中使用 PrivatePub 和 Faye 查找当前订阅的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033517/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com