频道
一对多的用户关系,功能类似于微信公众号。用户可以订阅/取消订阅频道,可以给频道发消息,此时只有频道主能收到。频道主可以在频道内广播给所有订阅者,也可以与某个订阅者私聊。
另外频道支持服务模式,可以使用频道服务来自动处理这些事情。这样频道就成了对接业务系统的利器。另外频道功能具有完整的权限控制,可以开放给第三方来开发系统。
1. 频道属性
频道的权限控制是频道属性字段定义的,在频道信息中有个status
字段(在Server API中字段用的是state
)就是频道的权限属性。频道属性是个8bit整数,每个bit代表不同的含义,具体如下:
bit位 | mask | 意义 |
---|---|---|
0 | 0x01 | 是否允许查看用户所有信息,还是只允许看用户id,用户名称,用户昵称和用户头像 |
1 | 0x02 | 是否允许查看非订阅用户信息 |
2 | 0x04 | 是否允许主动添加用户订阅关系 |
3 | 0x08 | 是否允许给非订阅用户发送消息 |
4 | 0x10 | 是否私有,私有频道不能被用户搜索和添加 |
5 | 0x20 | 系统保留 |
6 | 0x40 | 是否被删除 |
7 | 0x80 | 全局频道,全局频道发送消息会广播给系统所有人 |
客户端创建只能设置状态为0,server api可以指定不同的权限状态。