51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【开源分享】一个私有化部署即时IM通讯系统

项目介绍

概述

飞享是一个即时聊天系统整体解决方案,更像一个开箱即用的即时通讯产品化解决方案.在设计之初,尽量遵照平台原生开发的要求进行,因为我们始终觉得原生的体验是达到一个优秀即时通讯的基本要求.在对客户端,服务端设计的过程中,尽量采用业界通用的方案进行.不用过于依赖某项技术,因为我们任何只有合适的技术用在合适的系统上才能发挥它固有的价值.

初衷开始这个项目只是对即时通讯的喜爱,慢慢不断的发展成为一个即时通讯类产品,在功能的不断迭代中,需要我们停下脚本思考一些问题.更希望这个一个技术解决方案,而不是基于某种语言或者框架的解决方案.也是服务端通信框架是基于t-io(基于AIO的网络编程框架,提供便捷的API,方便管理,快速使用),或者是基于Netty(基于NIO的异步网络编程框架).也是服务端编程语言是基于Java或者是基于Go.技术本身是为了解决实际问题,不应该是限制具体某个领域的发展.在编写客户端应用时,可以支持Android,也可以支持iOS,可以支持Web.支持我们遵循我们设计的交互协议规范,这些都可以迎刃而解,不管你是采用Android或者iOS原生开发,还是跨平台开发,使用Js框架Vue,React.

系统架构#

系统架构在以后更多的是解决用户不断增多进而导致的,硬件支持,软件支持.更多的用户带来的挑战包括不断增长的数据,需要不断优化的用户体验.功能的迭代带来系统复杂度不断增大,给软件架构带来更多的挑战.所以基于我们现在的简单分布式架构,解决小部分用户使用尚可,后续需要考虑更多的用户,更优的用户体验,因此需要不断的优化软件架构

NOTE: 如下为简要的系统部署图

系统流程图#

FshareIM是一个技术自主可控即时IM通讯系统,适于私有化部署

IM即时通讯

支持文字,图片,文件等多种消息格式

消息多端同步

消息转发

消息撤回

音视频通话

支持一对一音视频通话

支持多人音视频通话

基于webrtc开发,自主可控

群组消息

支持创建群组

群组拉人与踢人

解散群组

群主撤回成员消息

为什么选择飞享IM?

技术高度自主可控私有化快捷部署良好的扩展性

项目截图

Android 客户端

|---------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| | 主界面 | 群组音视频聊天 | | | |

web 客户端



PC客户端

基于SpringBoot的微服务架构

网络框架使用tio

采用Dubbo RPC框架

web采用Vue前端框架

基于Electron的客户端跨平台

音视频技术基于webRTC

支持对象存储minio

平台脚本一键部署

支持Docker部署

支持K8s部署

微服务端部署,方便横向扩展

轻量级二进制协议

服务解耦,快速开发新的服务

可扩展的消息类型,方便定制

开放源码,支持二次开发

项目地址

  • • 【github】:https://github.com/fsharechat
赞(5)
未经允许不得转载:工具盒子 » 【开源分享】一个私有化部署即时IM通讯系统