我可以使用通配符附加和订阅频道吗?

斯鲁斯蒂卡·尼拉坎塔姆

当通过WebSockets使用Ably for Pub/Sub 时,我可以使用通配符订阅多个频道吗?

var channel = ably.channels.get('foo:*') 
channel.attach()

(免责声明:我是 Ably 的开发者倡导者,并在 Stack Overflow 上发布和自我回答一个常见的支持问题,以便我们的用户可以更轻松地找到它)

斯鲁斯蒂卡·尼拉坎塔姆

附加到频道时,您需要明确提供要附加到的频道名称,例如:

var channel = ably.channels.get('announcements')
channel.attach()

不可能在一次操作中附加到多个通道,即不支持以下内容:

var channel = ably.channels.get('foo:*') 
channel.attach()
/* attempting to attach to all channels matching the name foo:* will not work */

由于多种原因,这是不可能的:

  • 在单个操作中附加到无限数量的通道不会因您的客户端设备或我们的服务器终止这些连接而扩展

  • Ably 集群中的通道在可用资源之间动态分布并频繁移动。每个通道在很大程度上都是自治的,这对于确保系统保持可靠而没有单点故障或拥塞很重要。如果客户端要订阅与通配符匹配的所有通道,则需要维护与集群中可能正在运行通道的每个服务器的连接,以防创建与该通配符匹配的通道。这没有规模。

  • 如果您订阅了通配符频道,则无法提供 Ably 在频道上提供的数据传输保证和服务质量,因为:

    1. 在任何时候都没有办法确定地知道客户端实际连接到哪些通道
    2. 如果客户端设备过载(跟不上流)或超过速率限制,Ably 的服务器将不得不选择性地开始跨随机通道丢弃消息,以确保客户端可以继续接收消息。应该丢弃哪些消息?客户如何确定他/她错过了哪些消息?

但是,因为 Ably 的连接是多路复用的,因此允许您通过同一连接动态地附加和分离任何通道,当然可以通过根据需要附加到通道来有效地订阅通配符通道。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用通配符替换吗

来自分类Dev

我可以使用通配符比较字符串吗?

来自分类Dev

可以使用通配符卸载 udisksctl 吗?

来自分类Dev

我可以使用 Pay Pal 在没有订阅按钮的情况下出售订阅吗

来自分类Dev

我可以使用HDInsight创建带有学生订阅的Spark集群吗?

来自分类Dev

C:我可以使用C SDK知道pubnub订阅中的还原选项吗

来自分类Dev

我可以使用RestKit和Realm.io吗?

来自分类Dev

我可以使用@switch和Enumerations吗?

来自分类Dev

jekyll和sass; 我可以使用元吗?

来自分类Dev

我可以使用 Flexbox 创建背景和前景吗?

来自分类Dev

删除Google Cloud Tasks时可以使用通配符吗?

来自分类Dev

在 swift 中声明变量时可以使用通配符吗?

来自分类Dev

我可以使用std :: bind将状态“附加”到函数吗?

来自分类Dev

我们可以使用Java Mail API将Gmail邮件附加到Yahoo吗

来自分类Dev

在 sshd_config 中提到“AuthorizedKeysFile”时,我们可以使用通配符来拥有多个路径吗?

来自分类Dev

我可以在Elasticsearch中结合使用通配符搜索和全文搜索吗?

来自分类Dev

在哪里可以使用通配符%1和$ 1?

来自分类Dev

当用户未登录iCloud时,可以使用CloudKit在我的应用程序中使用订阅吗?

来自分类Dev

在NServiceBus中,我可以同时使用发布/订阅消息传递和全双工吗?

来自分类Dev

BigQuery 可以使用通配符表名和 table_suffix,但我正在寻找类似通配符数据集和 dataset_suffix 的解决方案

来自分类Dev

我可以使用python CSP吗?

来自分类Dev

我可以使用迭代器吗?

来自分类Dev

我可以使用RTF格式吗?

来自分类Dev

骨骼可以使用我的插件吗?

来自分类Dev

可以使用XP和Ubuntu吗?

来自分类Dev

我可以使用MVC,Razor和HTML5启动我的项目吗

来自分类Dev

我可以使用 calc 和 var 根据宽度更改我的 div 高度吗?

来自分类Dev

我可以在浏览器要求中使用通配符吗?

来自分类Dev

我可以在列表声明中使用泛型通配符吗?

Related 相关文章

  1. 1

    我可以使用通配符替换吗

  2. 2

    我可以使用通配符比较字符串吗?

  3. 3

    可以使用通配符卸载 udisksctl 吗?

  4. 4

    我可以使用 Pay Pal 在没有订阅按钮的情况下出售订阅吗

  5. 5

    我可以使用HDInsight创建带有学生订阅的Spark集群吗?

  6. 6

    C:我可以使用C SDK知道pubnub订阅中的还原选项吗

  7. 7

    我可以使用RestKit和Realm.io吗?

  8. 8

    我可以使用@switch和Enumerations吗?

  9. 9

    jekyll和sass; 我可以使用元吗?

  10. 10

    我可以使用 Flexbox 创建背景和前景吗?

  11. 11

    删除Google Cloud Tasks时可以使用通配符吗?

  12. 12

    在 swift 中声明变量时可以使用通配符吗?

  13. 13

    我可以使用std :: bind将状态“附加”到函数吗?

  14. 14

    我们可以使用Java Mail API将Gmail邮件附加到Yahoo吗

  15. 15

    在 sshd_config 中提到“AuthorizedKeysFile”时,我们可以使用通配符来拥有多个路径吗?

  16. 16

    我可以在Elasticsearch中结合使用通配符搜索和全文搜索吗?

  17. 17

    在哪里可以使用通配符%1和$ 1?

  18. 18

    当用户未登录iCloud时,可以使用CloudKit在我的应用程序中使用订阅吗?

  19. 19

    在NServiceBus中,我可以同时使用发布/订阅消息传递和全双工吗?

  20. 20

    BigQuery 可以使用通配符表名和 table_suffix,但我正在寻找类似通配符数据集和 dataset_suffix 的解决方案

  21. 21

    我可以使用python CSP吗?

  22. 22

    我可以使用迭代器吗?

  23. 23

    我可以使用RTF格式吗?

  24. 24

    骨骼可以使用我的插件吗?

  25. 25

    可以使用XP和Ubuntu吗?

  26. 26

    我可以使用MVC,Razor和HTML5启动我的项目吗

  27. 27

    我可以使用 calc 和 var 根据宽度更改我的 div 高度吗?

  28. 28

    我可以在浏览器要求中使用通配符吗?

  29. 29

    我可以在列表声明中使用泛型通配符吗?

热门标签

归档