酷信即时通讯是视酷信息开发的即时通讯软件,100%完全自研,超级并发性能,自定义协议简单明了,基于Protobuf的二进制字节格式,包极小,数据量小,传输速度快,带宽占用低!
软件特色
ProtoBuf 说明
Proto col buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
Proto col Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法,用protobuf序列化后的大小是JSON的10分之一,是XML格式的20分之一,但是性能却是它们的5~100倍,扩展性、兼容性更好。
即时通讯源码
数据库存储 分库分表方案
例如用户单聊记录 :
根据用户ID除 10000,作为分库的键
每一万用户的聊天记录存在一张表中,达到聊天记录均匀分散
提高数据库插入和查询的处理效率(多处与用户相关的表设计都采用了这个方案)
视频聊天源码
组包支持
服务器内部会把同一时间内有多个消息包会自动组成一个协议包发送
收到多条消息只需要发送一个回执协议,减少回执协议的浪费
需要客户端解析协议包时解析为多个消息包处理
开源IM
群组区别
视酷:
视酷中没有群组的概念都是临时聊天室实现的,客户端在每次登陆成功后都要遍历自己的群组,每个群组发送一个加入的协议
创建群组需发送多个协议
群组多的时候和网络不稳定的时候错误率比较多
群组成员上限为1万
酷信:
登陆后不需要客户端发送加群协议,服务端会自动把用户加入的群组和用户的连接进行绑定
群组多和网络不稳定的时候不会有影响
创建群组仅需发送一个协议
群组成员上限为10万
群组新消息
视酷:
最多会返回最后发送的100条消息,显示99+
漫游消息时,速度慢
酷信:
会显示准确的离线消息总数量,并获取最近20条
漫游消息时,速度快
IM
注册与登陆
视酷:
在业务系统注册一个账号后,系统需要自动调用XMPP系统注册一个用户
需要客户端保存密码(过程复杂 需要保持内容一致性)
诸如此类,XMPP交互控制协议多达几百种,类型繁多过程复杂
视酷即时通讯 账号登陆只能是密码登陆且XMPP系统能必须注册了该用户否则会登陆失败
酷信:
业务系统注册后,无需再注册一个账号
业务系统登陆后,根据返回的token登陆客户端不需要保存密码
登陆协议仅需一个协议
交互控制协议不超过十种,协议极简流程极简