频道基础
在 RTM 实时网络中,频道是一种有效的数据传输管理机制,用于将数据从一个设备传递到另一个设备。任何订阅或加入频道的用户都可以在 100 毫秒内接收到该频道中传输的消息或事件。RTM 允许客户端同时订阅或加入多个频道,具体数量参考 API 使用限制。大多数 RTM API 都使用频道作为参数,包括发送消息、接收消息、加密等。
频道类型
创建频道
对于 Message Channel,在使用前,你无需提前定义或创建频道。在你首次向 Message Channel 发送消息或首次订阅 Message Channel 时,RTM 会为你自动创建该频道。
对于 Stream Channel,虽然本质上也是随用随取的,但在使用前你需要明确的调用 createStreamChannel 方法创建一个 StreamChannel 对象实例,然后才能调用 join 方法加入频道。
频道限制
RTM 对同时存在的 Message 和 Stream 频道数量没有限制。然而,不同频道对单个客户端同时订阅或加入的频道数量、收发消息的 QPS 等的限制不同,详见 API 使用限制。
频道名称
频道名称不能为空,可为长度不超过 64 字节的字符串,由 ASCII 字符集中的字母或数字组成。RTM 使用 App ID 作为频道的命名空间,每个 App ID 下的频道由频道名称和频道类型共同标识。如果两个频道的频道类型不同或频道名称不同,则 RTM 会将它们视为两个独立的频道;如果两个频道的频道类型和频道名称都相同,则 RTM 会将它们视为同一个频道。
非法字符
.、*、/、\、\0 和不可打印的 ASCII 字符都属于非法字符。
合法字符
支持的合法字符如下:
- 26 个小写英文字母 a~z
- 26 个大写英文字母 A~Z
- 10 个数字 0~9
- 空格
!、#、$、%、&、(、)、+、,、-、:、;、<、=、>、?、@、[、]、^、_、{、|、}、~
命名不能以 _ 为前缀。
命名约定
虽然 SDK 并未强制要求,但是声网建议你在为频道命名的时候,通过有意义的前缀字符来表征频道的业务用途或此频道中消息的类型等,以便于你更清晰地展示你的业务逻辑。点击命名推荐查看更多建议。