[开源]基于去中心化的分布式即地通讯引擎实现的Web版通讯平台

科技一飞开源 2024-01-11 12:09:15

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介webtim是 Web通讯平台

webtim通讯服务器是 Tim。前端使用tim的js客户端 timjs 调用tim服务器接口渲染页面。 webtim开发目的是通过界面来显示表达tim接口功能。tim是去中心化的分布式IM引擎。支持基础通讯模式,对端到端的数据流传输支持非常全面,几乎涵盖了所有端到端的通讯需求,所以webtim可以非常流畅的实现任意通讯需求。 但tim的强大并非其通讯模式,而是去中心化的集群功能,tim的水平扩展能力非常强,可以支持成千上万的节点集群,没有中心依赖和限制,支持数据分布式存储,数据库节点动态扩容。

二、开源协议

使用AGPL-3.0开源协议

三、界面展示webtim功能截图:

视频直播功能截图:

webtim 的多人实时音视频功能截图:

移动端的截图:

四、功能概述webtim的im功能:用户注册,登录,修改资料,用户关系功能系列操作,群功能系列操作,用户状态传输,通信数据传输。webtim的流实现:实时视频电话,个人直播,视频播放直播,多人视频会议等webtim 是依赖 tim 即时通讯引擎 实现的 web 版通讯平台具备以下功能与特点:信息安全性:信息加密加密机制,确保通信内容的安全性。用户资料安全性:用户账号无需被记录到服务器。用户资料被加密存储。确保用户信息的安全性。支持即时通讯:允许用户进行实时的信息交流和文件传输。离线消息存储:允许用户在离线状态下接收消息,并在重新上线时进行同步。用户管理:支持用户注册、登录、个人信息管理等功能。好友关系管理:支持用户添加、删除好友,管理好友列表等功能。群管理:支持群的一系列操作功能消息回执:提供消息的发送状态反馈。消息撤回:消息可以被发送者撤回,并同步到相关所有的终端。用户状态广播:实现了用户实时在线状态的广播视频电话:实现用户与用户之间建立音视频电话的功能视频直播:实现了用户可以在线视频直播的功能播放视频直播:实现了用户可以通过播放本地音视频来做在线直播的功能多人实时视频:实现了多人进行实时视频的功能。该功能可用于在线多人会议,远程在线办公等。说明:webtim的im通讯逻辑功能是在tim服务端处理完成的,webtim用js处理tim返回的处理结果,并将数据渲染到页面展示。所以,使用tim进行IM通讯是跨平台的,web端,安卓,苹果等终端可以通过调用tim接口,进行业务上的数据通讯或业务处理。webtim不是专门的直播平台,只对视频进行简单采集。有时卡顿现象主要是采集数据出现错误或数据解析错误导致,更好的视频体验需要对采集数据做更细致的处理注册webtim的账号是信息安全的。tim不会记录注册者的账号,tim是内置账号系统,使用内置账号通讯。而且通讯信息加密,用户资料加密,所以,用户不必担心资料泄密,即使是tim作者本人,也没法反向获取用户的账号密码等信息。这一点在开源代码中可以体现五、技术选型

webtim通讯服务器是 Tim。前端使用tim的js客户端 timjs 调用tim服务器接口渲染页面。

TIM即时通讯引擎

tim的数据库可以使用 TLDB,Mysql,PostgreSQL ,SQL Server,Oracle,Oceanbase等数据库。

TIM采用BSD-3-Clause开源协议

tim的特点

tim是一个去中心化的分布式即时通讯引擎。

tim实现完全无中心的集群模式,并实现分布式数据存储,支持百万台数据库分布式存储数据,所以tim可以支持超大规模的集群,支持在线用户量可以达到百亿级别。

tim 构建了基础通讯模式,即1:1,1:N,N:N 模式,实现了底层流数据通讯。开发者根据业务需求灵活组合并使用tim的通讯模式,可以实现各种即时通讯的需求,类似微信,QQ,抖音等等im通讯,都可以用tim实现。类似直播间,实时音视频,多人视频,多人音视频会议等等功能,使用tim,非常简单就可以实现。类似消息撤回,消息阅后即焚等等,tim从底层消息通信类型就支持实现。

tim的使用主要依靠终端通过tim客户端调用服务接口,所有通讯逻辑都在tim服务端完成,tim客户端是采用极简模式实现接口调用,基本所有图灵完备的编程语言都可以快速实现tim客户端。

来源:TIM 官方文档

六、源码地址

访问一飞开源:https://code.exmay.com/

0 阅读:0

科技一飞开源

简介:感谢大家的关注