点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

每天 14:00 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:github.com/msgbyte/tailchat


今天给大家介绍一款即时通讯应用,这个开源项目是:Tailchat ,它是一个基于 React + Typescript 的现代开源 noIM 应用程序。

简单介绍

相信大家都或多或少了解过 Discord / Slack 这样大火的即时通讯应用。两者分别在各自的领域有很大的成就。

而今天我来介绍一下他们两者的开源替代品,甚至是升级版 —— Tailchat.

502fe806985385c28f0e42c231b804f3.png

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

概念

Tailchat 自身定位为 noIM (not only IM ), 与其他IM应用最大的区别在于他底层是由一套开放式的插件系统构成的。这种设计为 Tailchat 带来了一套高度自由的开放生态,通过插件机制可以修改Tailchat本身的方方面面而不会影响到核心代码,更重要的是插件机制给与用户选择权。通过插件可以基于核心的IM功能构造出一套完整的空间,这就是为什么定位为 noIM 的原因。Tailchat 具有很多想象的空间。

另外,插件机制也是一种利于二次开发的设计。对于极客或者想要高度自定义的企业来说非常重要。

449d618d2a83f79753799f2399c729d8.png

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

功能

Tailchat 除了拥有大部分 IM 应用都有的功能如群组管理好友私信音视频通话 等常规功能之外,还有更加深入的进阶功能如:

  • 身份组管理

  • 自定义面板

  • 开放平台

  • 插件中心

  • 管理后台

  • 多平台支持(网页端, 手机端, 桌面端)

另外,目前Tailchat已经有大大小小超过30个官方插件,在未来还会有更多插件。

身份组

Tailchat的权限管理采用 RBAC 策略,基于身份组的组合能够拥有不同的权限。相较于普通的 管理员/成员 模式来说,身份组的方式能够很好的组合出不同的权限管理方式。

一个简单的例子: A 身份有 a, b 两个权限,B 身份有 b, c 两个权限,那么如果一个用户同时拥有 AB 两个身份,那么他就有 a, b, c 三个权限。

开放平台

和许多的开放平台一样,Tailchat 支持机器人和第三方登录。通过开放平台可以让外部系统和IM有一个很好的沟通,增强不同应用之间的联系。如果说插件是用户可以感知的前端的连接(插件也有后端),那么开放平台就是纯后端的连接。

如果仅需要一些简单的消息发送功能,一些预设的官方插件也能很好的满足要求。

75cb88650659a1314b2946b33ed8c14b.png
管理后台

在Tailchat主应用中,所有的用户都是平等地位的,即所有的功能都是一样的。但是作为运营项目的同学需要更加强的控制与管理能力,以应对监管与运维的要求。因此 Tailchat 也提供后台系统可以帮助用户更好的管理自己的应用

37dee252a82816d8f9ea6ec70abb79bf.png

技术

前端

Tailchat 的前端是基于 MiniStar 实现的微内核的架构,MiniStar负责模块之间的加载与模块共享,而Tailchat则提供了依赖和插槽来允许自定义插件在 Tailchat 上实现自己想要的逻辑。这一点与vscode是非常相近的。

技术栈:

  • React

  • Redux

  • mini-star

  • tailwindcss

后端

Tailchat 一开始的设计就是为了拓展实现的。后端是基于分布式微服务架构,无需修改就可以直接进行扩容。对于外部的服务接入只需要接入网络即可实现

技术栈:

  • Nodejs

  • Socket.io

  • koa

  • moleculer

需要依赖:

  • redis: 作为后台微服务的转发与缓存服务中间件

  • minio: 作为文件服务的对象存储服务中间件

  • mongo: 主要数据库存储用户数据

24d2b787a7f44218d2aec4b9b47a029f.png
开源项目地址:
  • https://github.com/msgbyte/tailchat



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

5bfcf7e36ea0e5de2aba83e9c7d68459.png

已在知识星球更新源码解析如下:

f1c7b8b96a5339ce724c63a8f66ac978.jpeg

5bcd1aa37a804a78ec7155916715d528.jpeg

01d2369f1b52bd6c234ff42f4b49f454.jpeg

ca8f96018ef139d032254c8f1722082f.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 6W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐