![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Tim分布式IM引擎
文章平均质量分 86
donnie4w
专注数据库,即时通讯,AI领域的研发编程
展开
-
webtim 开源即时通讯平台 v0.0.5发布
webtim是即时通讯平台,提供丰富的通讯功能,除了基础通讯,同时实现多人实时音视频,视频直播等功能。im服务器为 Tim。前端使用tim的js客户端 timjs 调用tim服务器接口解析数据并渲染页面原创 2024-04-16 10:43:16 · 601 阅读 · 0 评论 -
去中心化分布式即时通讯引擎tim v2.0.1 发布
作者已经为windows,linux, macos等操作系统, 写好启动脚本,并打包放置相应的webtim执行文件。只需要执行start脚本,便可以在本地一键启动webtim。启动后,可以在本地通过tim后台管理系统与tldb后台管理系统查看相关的数据。说明:big string,big binary 是一种无格式的松散数据协议,主要应用场景在一些特殊的场景下,对类似thrift,json等特定格式的协议无法支持的情况下使用。这种两种松散的协议,可以支持一个数据包被终端分包多次发送的情况。原创 2024-01-22 10:55:34 · 1650 阅读 · 0 评论 -
tim实践系列——接入外部账号系统,配置关系型数据库
不依赖于任何中心服务器,采用去中心化分布式架构,解决传统中心化通讯方式的问题,去中心化分布式架构的通讯引擎的各个节点之间相互连接,形成一个庞大的分布式网络。可以轻松地扩展服务规模,支持更多的用户和业务需求,提供更加安全、可靠、高效的通讯服务。Github系列开源文章tim支持使用各种关系型数据库,如Mysql,PostgreSQL ,SQL Server,Oracle,Oceanbase;tim默认数据库为TLDB;原创 2024-01-22 10:54:24 · 929 阅读 · 0 评论 -
tim实践系列——如何架构支持亿级别在线用户的即时消息系统
海量在线用户在应用上的行为,会产生巨大的数据量和高并发压力,对系统的并发处理能力与海量数据处理能力是一项大挑战。构建亿级别在线用户的即时消息系统或更高数据量的系统,不是一个大框架就可以解决的的问题,需要结合业务特点,从许多细微的地方入手才能更好的搭建符合实际业务情况的合理架构。以上3篇文章讲述了tim的集群架构特点,数据存储能力,安全限流等措施。实际上,除了限流措施,tim还提供了系列的验证,接口安全调用等措施。原创 2024-01-22 10:52:55 · 1092 阅读 · 0 评论 -
tim实践系列——tim的限流,报文长度,连接数,请求频率
【代码】tim实践系列——tim的限流,报文长度,连接数,请求频率。原创 2024-01-16 11:29:56 · 500 阅读 · 0 评论 -
tim实践系列——去中心化分布式架构特点
tim是去中心化分布式即时通讯引擎。不依赖于任何中心服务器,采用去中心化分布式架构,解决传统中心化通讯方式的问题,去中心化分布式架构的通讯引擎的各个节点之间相互连接,形成一个庞大的分布式网络。可以轻松地扩展服务规模,支持更多的用户和业务需求,提供更加安全、可靠、高效的通讯服务原创 2024-01-16 11:28:52 · 766 阅读 · 2 评论 -
tim实践系列——分布式数据存储与动态数据库扩容
分布式数据存储是一种将数据分散存储在网络中多个节点上的技术,它通过多台服务器、计算机或者存储设备来共同维护和管理大量的数据集。这种架构能够提高系统的可扩展性、可用性和容错能力,因为不再依赖于单个大型的集中式存储系统。在分布式数据存储系统中,数据被分成多个部分并分散存储在各个独立的节点上。每个节点都拥有处理和存储数据的能力,可以根据需要动态地加入或离开系统,使得整个存储系统具有弹性伸缩的特点。TIM默认的数据库TLDB是一个高性能的分布式数据库,提供了数据的分布式存储。原创 2024-01-12 12:40:52 · 647 阅读 · 0 评论 -
webtim开源即时通讯平台第三版发布
webtim是依赖 tim即时通讯引擎 实现的web版通讯平台,具备以下功能与特点: 信息安全性:信息加密加密机制,确保通信内容的安全性。 用户资料安全性:用户账号无需被记录到服务器。用户资料被加密存储。确保用户信息的安全性。 支持即时通讯:允许用户进行实时的信息交流和文件传输。 离线消息存储:允许用户在离线状态下接收消息,并在重新上线时进行同步。 用户管理:支持用户注册、登录、个人信息管理等功能。 好友关系管理:支持用户添加、删除好友,管理好友列表等功能。原创 2024-01-12 12:39:16 · 1107 阅读 · 0 评论 -
tim实践系列——虚拟房间的作用和如何使用
而且在流分发中,一个流的中继服务器会派生流数据第二备用,第三备用,第四备用...等等的多个备用tim节点,当该中继器断开或其他节点无法连接它时,可以连接到它的后续备用节点上,中继器与集群断开时,第二备用节点变成这个流数据的中继服务器,它会继续派生出多个备用节点。tim自身实现的集群算法,自动形成这样的分布式架构,不需要人为调整,也无法人为干预。此时,注册者可以向虚拟房间 推送流数据,其他账号则无权限向该虚拟房间推送流数据。基于虚拟房间的推流,最终实现的是向tim推流,并进行流的分发。原创 2023-12-29 10:34:35 · 958 阅读 · 0 评论 -
快速使用tim的简易demo
如果端口被占用无法启动,那么需要配置文件中配置监听端口,如:配置文件为 tim.json 内容: { "im.listen": 5081}打开两个浏览器标签页,任意账号都可以登录,互发信息。由于无数据库,因此也没有离线信息,只有登录在线才能收到信息。直接用浏览器打开页面无法连接tim服务器。可以用nginx或其他任意http静态文件服务器。tim是支持无数据库模式的,在无数据库模式下,任何账号登录都无需密码。下载相应操作系统的的tim运行文件。tim也支持无配置启动。只要将页面运行起来,原创 2023-12-29 10:18:49 · 515 阅读 · 0 评论 -
tim实践系列——内置的好友关系和群组
使用tldb数据库时,默认支持tim内置账户系统,对于内置用户系统,tim是利用tim的核心接口实现了一套特定用户逻辑关系,实际上,这一套用户逻辑不一定适合所有业务的需求,但是,tim用户系统是对标目前流行的IM业务逻辑所设计开发的,适用于大部分的IM业务。如果tim的用户系统不能适配开发者的实际业务,开发者可以配置其他数据库,使用自己的用户系统。说明:tim的所有接口,除了注册和获取token接口外,其他接口都是异步返回数据。终端在tim客户端定义的对应handler捕获tim返回的数据并进行处理。原创 2023-12-26 20:15:49 · 371 阅读 · 1 评论 -
tim实践系列——tim信息安全与账号系统
用户信息包括用户登录账号,登录密码,用户个人资料等信息等;如乱码部分,则是加密后的用户个人资料,通常来说,虽然tim提供记录修改个人资料的功能,但是个人建议 开发者对用户个人资料应该在自己的业务系统中提供接口进行增删改查,用户资料数据记录到业务数据库中,最好不记录到tim中,因为个人资料本身与IM没有直接的关联性。接入自己的业务数据库,用户通信时,使用的是 执行登录SQL返回的标识,该标识可以是字符串,也可以是整数,比如 sql返回用户id号,或直接返回用户登录账号等。原创 2023-12-26 20:01:34 · 888 阅读 · 1 评论 -
tim实践系列——tim如何限制一个账号多个终端登录
tim的配置文件有两个字段限制登录账号:tim.json。原创 2023-12-26 12:11:01 · 1088 阅读 · 1 评论 -
tim实践系列——消息特点与如何在实际业务中使用
TimMessage是tim最主要的数据结构,所以它的功能比较复杂,也比较多,主要体现在TimMessage时可以被持久化的,并且可以通过发送者或接收者发起相应的指令进行删除,TimMessage包含多个属性字段,多种数据类型属性,可以传递不同类型的数据。在《》中,详细介绍了TimMessage的数据结构,本文主要示例它的业务使用。原创 2023-12-26 11:53:55 · 997 阅读 · 1 评论 -
web开源直播通讯平台webtim
webtim开发目的是通过界面来显示表达tim接口功能。tim是去中心化的分布式IM引擎。支持基础通讯模式,对端到端的数据流传输支持非常全面,几乎涵盖了所有端到端的通讯需求,所以webtim可以非常流畅的实现任意通讯需求。但tim的强大并非其通讯模式,而是去中心化的集群功能,tim的水平扩展能力非常强,可以支持成千上万的节点集群,没有中心依赖和限制,支持数据分布式存储,数据库节点动态扩容。前端使用tim的js客户端。调用tim服务器接口渲染页面。原创 2023-12-26 11:35:53 · 1201 阅读 · 2 评论 -
tim实践系列——用户如何实现 隐身,在线,忙碌,心情等状态
部分IM软件会有显示用户在线状态的功能,如QQ,Skype等tim本身没有用户状态的说法,也就是说TimPresence不一定非得用于定义用户状态,也可以用于发送用户信息,但是TimPresence对象不会被持久化,也没有离线信息,只有在线用户才能收到,所以它的特征比较适合用于传递用户在线状态。而且用户掉线时,tim的内部业务逻辑也是发送一条TimPresence信息给好友用户,其属性offline=true。原创 2023-12-16 13:57:37 · 161 阅读 · 1 评论 -
tim实践系列——如何使用TimPresence自定义各种用户状态
timPrecence所有值都不会影响tim的业务逻辑,所有字段都没有既定的设定值,除了id,offline,fromTid 是由服务器赋值发送之外的字段,tim服务器会将客户端发送的值原样发送给目标用户,所以,如何显示状态需要开发者自定义设定。使用timPrecence时,需要对timPresence进行赋值,一些字段不需要客户端赋值的,包括 id,offline,fromTid 这些字段是由服务器赋值发送到客户端,所以客户端对这些字段赋值是无效的。原创 2023-12-16 11:57:34 · 134 阅读 · 1 评论 -
去中心化分布式即时通讯引擎tim2.0.0
所以使用tim是信息安全的,即使内部开发人员,在不进行额外记录的情况下,也无法直接查询用户及通讯信息。当然,这是针对使用tim内置用户系统的情况,如果使用tim接入外部业务用户系统,则用户信息不受tim操作,但通讯信息依旧是加密存储的。后续的《tim实践系列》文章会逐一更新,详细介绍tim的使用。数据库存储示例截图:(原创 2023-12-12 12:08:13 · 889 阅读 · 2 评论