默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
即时通信的消息ID,有什么好的不重复的生成方法吗?
阅读(43972) | 评论(3 收藏1 淘帖1
想到的场景如:登录、消息收发、图片语音收发、甚至心跳等等,发送消息必然有消息ID并对其进行验证是否重复。
使用人数少的时候,可能还好,一旦人多,消息多了,ID的重复问题就会致命了。
所以,消息ID的生成,有啥好办法,永远不重复?
uuid我在网上搜,看到有说重复的看起来也不靠谱,不知道各位高人们有啥好办法。

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:即时通讯
上一篇:快速裂变:见证微信强大后台架构从0到1的演进历程(二)下一篇:有人知道语音留言聊天等大文件或大数据量的主流实现方式吗?

本帖已收录至以下技术专辑

推荐方案
评论 3
引用:coolkk 发表于 2016-03-24 08:58
MobileIMSDK也是用的UUID吗?

MobileIMSDK的QoS机制里,用的就是UUID
签名: 《Web端IM聊天消息该不该用浏览器本地存储?一文即懂!》http://www.52im.net/thread-4745-1-1.html
引用:JackJiang 发表于 2016-03-24 16:37
UUID是肯定靠谱的,很多基础ID都是UUID生成的(比如某些db的主键id自动生成等等,应用场景很广),碰撞的可 ...

MobileIMSDK也是用的UUID吗?
UUID是肯定靠谱的,很多基础ID都是UUID生成的(比如某些db的主键id自动生成等等,应用场景很广),碰撞的可能性小到几乎可以忽略(你可以去查查它的算法规则和原理),优点很明显,但缺点也很明显:就是生成的串有点长,如果你对生成的长度没要求,建议你用这个是最简单的。

另外,也有很多人在尝试其它算法,以便能实现既能达到uuid的唯一性(当然,理论上并非绝对唯一),也能生成非常短的id,甚至是几个字节就能存储的整数或长整数,比如这篇文章里实现的算法:http://www.cnblogs.com/eaglet/archive/2011/01/17/1937083.html,还是很牛逼的。但是这种算法在生成的长度和碰撞的几率是相矛盾的,所以完美的算法还是很难找到的,仅供参考。
签名: 《Web端IM聊天消息该不该用浏览器本地存储?一文即懂!》http://www.52im.net/thread-4745-1-1.html
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部