去中心化分布式即时通讯引擎tim2.0.0


tim2.0.0 是一个去中心化的分布式im引擎,分布式数据存储,零依赖,支持nat穿透,支持大规模集群,支持多种数据库,支持海量数据流分发。tim2.0.0是作者通过长时间实践并结合 xmpp设计理念开发的im引擎。


tim的特点

  • 解决大规模节点集群问题,去中心化架构,无第三方服务依赖
  • 解决海量通讯数据存储问题,分布式数据存储,支持数据库在线动态扩容
  • 高性能,协议体积小,序列化效率高
  • 支持所有的通讯模式,通过tim可以设计开发类似微信,抖音,QQ,阅后即焚等等app的通讯功能
  • tim从底层设计支持流数据分发,通过tim可以支持类似抖音的 海量用户直播间 等功能
  • 通过tim可以搭建通讯服务 云平台
  • tim自带监控后台


tim功能简介

  1. 去中心化分布式架构,支持Nat穿透集群节点,天然分布式架构,无需特殊配置,无最小节点数限制,零依赖,支持大规模集群。
  2. 支持多种数据库:TLDB,Mysql,PostgreSQL ,SQL Server,Oracle,Oceanbase等
  3. 高度归纳IM通讯模式,从底层支持1:1,1:N,N:N 通讯模式
  4. 从底层支持流数据发送,轻松支持直播,实时音视频等功能的开发
  5. 重视数据安全,从账号到通讯数据,都进行换算或加密,保证用户信息安全
  6. 实现分布式存储数据,解决海量数据存储的问题,支持动态扩容数据库节点。
  7. 具备单机高性能特点,协议序列化效率高,体积小。
  8. 从底层支持各种通讯类型,包括普通信息,撤回信息,信息阅后即焚等
  9. 支持各种自定义用户状态,对标QQ等类型APP的状态功能
  10. 支持群组,对标QQ,微信等类型APP群组功能
  11. 支持多人实时流数据发送,对标抖音直播,视频连线,或多人实时视频会议等app的功能
  12. 支持同账号多终端同时登录,并支持通过配置进行限制,对标QQ,微信多终端登录功能
  13. 支持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.comhttps://tlnet.top/contact  发信给我,谢谢!