上一篇我们讲了,IM的底层逻辑就是 发布 → 频道 → 订阅。
单聊怎么抽象成发布→频道→订阅的模式?
单聊频道ID技巧
聊天双方的用户uid 通过@拼接,hash值小的拼在第一位 大的拼在@后。
假设用户A的用户唯一ID(uid)为 abc (hash值:1941671012) 用户B的用户唯一ID(uid)为 kfm(hash值:3859239440)
那么他们双方通讯的频道ID: abc@kfm (因为 1941671012 < 3859239440)
频道成员
用户abc 与 用户kfm聊天 其实就是在频道ID为abc@kfm的群内聊天
所以,abc@kfm频道内的群成员为 用户abc和用户kfm
目的
这样做的目的就是统一IM的底层逻辑,IM底层就只有一条逻辑支线,那就是 发布 → 频道 → 订阅,也就是只有群聊,单聊也是群聊。
我们的开源IM:
唐僧叨叨(业务层):GitHub - TangSengDaoDao/TangSengDaoDaoServer: 高颜值 IM 即时通讯,聊天
下一篇: 用Go打造现代IM之千万级IM性能瓶颈分析