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实践系列——tim协议与其他格式协议的比较》
- 《tim实践系列——tim设计来源与设计模式》
- 《tim实践系列——如何使用TimMessage自定义各种消息》
- 《tim实践系列——如何使用TimPrecence自定义各种用户状态》
- 《tim实践系列——虚拟房间的作用和如何使用》
- 《tim实践系列——用户如何实现 隐身,在线,忙碌等状态》
- 《tim实践系列——消息特点和如何在实际业务中使用》
- 《tim实践系列——tim如何限制一个账号多个终端登录》
- 《tim实践系列——tim内置的账号系统与登录账号区别》
- 《tim实践系列——内置的好友关系和群组》
- 《tim实践系列——消息撤回,阅后即焚 等功能如何开发》
- 《tim实践系列——用户之间如何实现文件传输》
- 《tim实践系列——微信实时音视频开发》
- 《tim实践系列——抖音直播间的开发》
- 《tim实践系列——多人实时视频会议,抖音直播间在线多人视频连线》
- 《tim实践系列——如何实现对公众号订阅号等系统栏目的实时订阅》
- 《tim实践系列——去中心化分布式架构特点》
- 《tim实践系列——分布式数据存储与动态数据库扩容》
- 《tim实践系列——如何架构支持百亿级别在线用户的即时消息系统》
- 《tim实践系列——接入自定义账号系统,配置关系型数据库》
- 《tim实践系列——后台管理员接口的使用》
- 《tim实践系列——账号安全措施》
- 《tim实践系列——tim服务器如何限流,限制消息体大小,连接数,发信频率等》
- 《tim实践系列——tim产生的数据统计与建议》
- 《tim实践系列——tim配置系统参数要注意的地方》
- 《tim实践系列——使用timjs实现的web版即时通讯项目webtim》
- 《tim实践系列——使用tim无数据库模式实现web IM》
tim监控后台
webtim
webtim是tim的功能示例项目,使用 tim客户端timjs开发,除了流数据的使用,展示了基本的用户通讯与群功能,功能如 用户注册,用户上线,离线,加好友,基本通讯,离线数据,拉取聊天数据,建群,加群,退群,踢出群等等功能,当然部分接口没有示例的如拉黑,修改资料等,这些请在tim文档上查询或 等待后续 webtim的完善.
webtim的业务使用timjs完成,所有逻辑功能前端页面中处理完成。
webtim的源码地址:https://github.com/donnie4w/webtim
webtim在线访问地址:https://tim.tlnet.top
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。