Centrifugo(五)频道(Channel)

    频道(Channel)是消息发布的通道。客户端通过订阅频道来接收与频道相关的事件,包括发布到本频道的消息、用户订阅/取消订阅的消息等等。

    频道的生命周期比较短暂,不需要显式的去声明。当第一个客户端进行订阅时,Centrifugo 会自动创建相应频道。当最后一个客户端取消订阅时,频道会立即自动被销毁。

  • 频道的命名规则

    频道以字符串为标识,由字母、数字、下划线或连接符组成,长度必须大于2(^[-azA-Z0-9_]{2,}$),默认最大长度为255,如需修改可以通过配置文件中的 channel_max_length 参数进行调整。

以下几个符号是 Centrifugo 的内部保留符号:

  • : - 命名空间分隔符
  • $ - 私有频道前缀
  • # - 用户频道分隔符
  • * - 保留字符
  • & - 保留字符
  • / - 保留字符

命名空间分隔符(:):如果频道名称为 public:chat,该频道的配置信息将使用 public 命名空间的配置参数设置。

私有频道前缀($):如果频道名称以 $ 开头,则意味着该频道为私有频道。订阅私有频道必须通过应用程序后端签名。

用户频道分隔符(#):该字符用于创建用户专属频道,news#42,表示只有 ID 为 42 的用户可以订阅该频道。客户端在连接 Centrifugo 时需要提供 Token,其中包含了 user ID,因此 Centrifugo 清楚每个客户端的 user ID。另外,用户频道可以支持多个 user ID,user ID 之间通过逗号分隔,例如 news#42,43。此种类型的频道适用于固定用户,例如用户个人消息通道、确定用户之间的对话通道,一旦需要动态用户访问频道,此频道类型就不合适了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,395评论 0 3
  • 去年有段时间得空,就把谷歌GAE的API权威指南看了一遍,收获颇丰,特别是在自己几乎独立开发了公司的云数据中心之后...
    骑单车的勋爵阅读 20,760评论 0 41
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,509评论 0 5
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,484评论 0 9
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11