4. 用Go打造现代IM之单聊频道ID技巧

上一篇我们讲了,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:

悟空IM(通讯层):GitHub - WuKongIM/WuKongIM: 8年积累,沉淀出来的高性能通用实时通讯服务,支持即时通讯(聊天软件)(IM)(Chat),消息推送,消息中台,音视频信令,直播弹幕,客服系统,AI通讯,即时社区等场景

唐僧叨叨(业务层):GitHub - TangSengDaoDao/TangSengDaoDaoServer: 高颜值 IM 即时通讯,聊天

下一篇: 用Go打造现代IM之千万级IM性能瓶颈分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值