默认
打赏 发表评论 31
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?别走弯路了... 找站长给点建议
神秘人  发表于 2 年前
6.取会话 ID 的低 16 位作为 lowBits
int lowBits = (sessionIdInt & 0xFFFF) << 16;
这一步有问题吧,2^16=65536,65536-1 转为16进制为: 0xFFFF,(sessionIdInt & 0xFFFF) 这个意思是先把sessionIdInt 中高于16位的都为0,然后左移16位,z 这样 sessionIdInt 就是32位了呀
引用:ZJoker 发表于 2022-11-04 22:56
有专门的ID发号器服务

怎么个流程呢,是先不带id发送给服务端吗,服务端生成填充。那么客户端的消息没id,什么时候能给到他呢?
引用:JackJiang 发表于 2023-08-21 16:01
qq活了24年了,qq号现在才多少位。。。
先不说这22位能不能正的用完,假使真的会用完,我估计公司肯定比 ...

会话和qq号是不一样的,一个QQ号有N个会话
假如产品是多端的话,这些发号器是在哪个阶段给id生成给消息啊
引用:helloc 发表于 2026-05-08 15:35
假如产品是多端的话,这些发号器是在哪个阶段给id生成给消息啊

最方便的是办法:哪个端发出的消息就哪个端生成
引用:JackJiang 发表于 2026-05-08 16:58
最方便的是办法:哪个端发出的消息就哪个端生成

emmm,客户端我理解,如果是网页端咋办呢
引用:helloc 发表于 2026-05-08 17:07
emmm,客户端我理解,如果是网页端咋办呢

网页端你一样可以js代码去生成,规则一致即可
引用:JackJiang 发表于 2026-05-08 17:35
网页端你一样可以js代码去生成,规则一致即可

好的,谢谢Jack老师
引用:xiaoskery2 发表于 2023-08-21 15:40
会话类型+会话id一共只有22位,能表示的会话会不会太少了?冲突了怎么办?
像有匿名用户的场景,会不断的 ...

会话id不需要全局唯一吧,只要保证用户个人不重复就行,2的22次方有四百多万呢,一个客户怎么可能使用四百多万的会话
引用:穷屌丝2 发表于 2024-08-13 18:20
怎么个流程呢,是先不带id发送给服务端吗,服务端生成填充。那么客户端的消息没id,什么时候能给到他呢?

你可以看融云的另一个产品,服务端生成id后,通过ack的机制把消息id带回客户端
今天读完感觉怪,可能是我钻牛角尖了
假如同一个群聊的两条消息,在同一时间到达不同的两个消息服务,并且获取消息id,
那不就满足了时间相同,不自旋,会话类型和会话id相同了吗
然后得出一个重复的消息Id
引用:ZJoker 发表于 2022-11-04 22:56
有专门的ID发号器服务

文章没有提到额外的发号服务吧
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部