去中心化分布式即时通讯引擎tim2.0.0
tim2.0.0 是一个去中心化的分布式im引擎,分布式数据存储,零依赖,支持nat穿透,支持大规模集群,支持多种数据库,支持海量数据流分发。tim2.0.0是作者通过长时间实践并结合 xmpp设计理念开发的im引擎。
tim的特点
- 解决大规模节点集群问题,去中心化架构,无第三方服务依赖
- 解决海量通讯数据存储问题,分布式数据存储,支持数据库在线动态扩容
- 高性能,协议体积小,序列化效率高
- 支持所有的通讯模式,通过tim可以设计开发类似微信,抖音,QQ,阅后即焚等等app的通讯功能
- tim从底层设计支持流数据分发,通过tim可以支持类似抖音的 海量用户直播间 等功能
- 通过tim可以搭建通讯服务 云平台
- tim自带监控后台
tim功能简介
- 去中心化分布式架构,支持Nat穿透集群节点,天然分布式架构,无需特殊配置,无最小节点数限制,零依赖,支持大规模集群。
- 支持多种数据库:TLDB,Mysql,PostgreSQL ,SQL Server,Oracle,Oceanbase等
- 高度归纳IM通讯模式,从底层支持1:1,1:N,N:N 通讯模式
- 从底层支持流数据发送,轻松支持直播,实时音视频等功能的开发
- 重视数据安全,从账号到通讯数据,都进行换算或加密,保证用户信息安全
- 实现分布式存储数据,解决海量数据存储的问题,支持动态扩容数据库节点。
- 具备单机高性能特点,协议序列化效率高,体积小。
- 从底层支持各种通讯类型,包括普通信息,撤回信息,信息阅后即焚等
- 支持各种自定义用户状态,对标QQ等类型APP的状态功能
- 支持群组,对标QQ,微信等类型APP群组功能
- 支持多人实时流数据发送,对标抖音直播,视频连线,或多人实时视频会议等app的功能
- 支持同账号多终端同时登录,并支持通过配置进行限制,对标QQ,微信多终端登录功能
- 支持thrift压缩,json,big string,big binary等多种形式的客户端协议
tim的性能
tim传输具备协议体积小,序列化效率高,定位快的特点
- 千人大群,千人同时在线,一个tim服务节点的场景,消息不延迟
- 万人大群,万人同时在线,一个tim服务节点的场景,消息延迟2-5秒
- 万人大群,万人同时在线,三个tim集群节点的场景,消息不延迟或延迟小于2秒
tim的安全性
- tim支持安全协议通讯
- tim对用户属性资料及所有通讯数据都进行加密存储
- tim不存储用户账号等信息,tim是通过内置用户账号进行用户通讯
所以使用tim是信息安全的,即使内部开发人员,在不进行额外记录的情况下,也无法直接查询用户及通讯信息。当然,这是针对使用tim内置用户系统的情况,如果使用tim接入外部业务用户系统,则用户信息不受tim操作,但通讯信息依旧是加密存储的。
数据库存储示例截图:(乱码部分为加密数据
)
tim实践系列文章
tim监控后台
webtim
webtim是tim的功能示例项目,使用 tim客户端timjs开发,除了流数据的使用,展示了基本的用户通讯与群功能,功能如 用户注册,用户上线,离线,加好友,基本通讯,离线数据,拉取聊天数据,建群,加群,退群,踢出群等等功能,当然部分接口没有示例的如拉黑,修改资料等,这些请在tim文档上查询或 等待后续 webtim的完善.
webtim的业务使用timjs完成,所有逻辑功能前端页面中处理完成。
webtim的源码地址:https://github.com/donnie4w/webtim
webtim在线访问地址:https://tim.tlnet.top
webtim的功能截图:
聊天及用户状态
群组功能:
有任何问题或建议请Email:donnie4w@gmail.com或 https://tlnet.top/contact 发信给我,谢谢!