1 Star 0 Fork 131

平行时空 / universe_push

forked from comsince / universe_push 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Build Status GitHub license Gitee stars GitHub stars

飞享

image

支持集群的分布式全开源即时聊天系统,该项目是飞享聊天系统服务端源码

适合快速部署的聊天系统

这是一个聊天系统的简单架构,解决大量用户需要即时通讯的解决方案,基于RPC框架Dubbo,SpringBoot构建微服务应用,提供Docker快速部署的解决方案。 提供Android客户端,Web客户端类似微信功能,包括好友添加私聊群聊一对一音视频通话等基本功能

架构图

NOTE: 基本架构图说明为了帮助大家更快了解系统依赖的组件,方便大家快速本地部署

image

Android 客户端

android-chat客户端,基于java nio实现TCP长连接,使用自定义的二进制协议,全新的心跳设计,实现与web端消息同步,音视频通话等功能。

image

扫码体验APK下载

image

NOTE: 本apk基于android-chat构建替换为java协议栈开发

  • 请选择其中任何一个帐号密码进行登录即可
帐号:13800000000, 13800000001, 13800000002
验证码:556677
  • 技术咨询

当你登录上面其中一个测试帐号后,如果你有什么问题,请到通讯录找到官方技术支持发消息即可,你也可以在IM即时通讯交流组提问,如果在研究过程中有问题,可以随时咨询,本人尽量提供技术支持,但并不保证随时在线,请尽量在工作日时间发消息

  • 官方QQ群交流

image

基于Vue的Web客户端

web客户端基于websocket通信,在此协议之上使用json格式的协议进行通讯,详情参见vue-chat,支持文本,图片类型发送,支持实时音视频,支持音视频与android-chat客户端互通

  • 项目预览

image

  • 语音通话

image

  • 视频通话

image

NOTE: 演示地址 演示账号,验证码同手机版一致.由于这里使用的是http服务,chrome浏览器对非https的权限管控,建议使用edge浏览器测试音视频通话,当然你也可以本地部署

Vue-Chat公测地址

  • 公测地址chat.comsince.cn NOTE: 注意公测地址演示地址两套环境是独立的,数据不互通,公测环境请使用手机号+验证码登录,如需技术支持或意见反馈请加好友13900000001官方技术支持,公测地址带宽只有1M,首次加载可能需要时间比较长,请耐心等待

服务说明

聊天系统为了适应大规模用户的链接请求,将服务分为链接服务消息服务,它们都是独立的,可以单独部署也可以集群部署

链接服务[push-connector]

用于解决用户的链接请求,支撑百万级用户的链接,可单机部署,可集群部署。如果你存在大规模用户链接,可以启动集群模式,参考K8s自动伸缩模式

消息服务[push-group]

用于用户处理用户管理,会话管理,离线消息处理,群组管理等功能,是整个即时通讯系统的业务处理模块

自动化构建

增加持续集成的好处

  • 随时随地发布软件
  • 任何一次构建都能触发一次发布
  • 只需发布一次artifact,即可随时发布

NOTE: 以下是发布持续交付工作流图

image

如何启动服务

本机部署只需要两个SpringBoot服务,一个Mysql服务,一个zookeeper服务,链接服务push-connector集群模式还需要kafka支持

部署前准备

  • 安装dockerdocker-composer,如果需要在k8s中部署,请准备好相关的环境
  • 确保编译此项目mvn clean package -Dmaven.test.skip=true

生产模式

这种模式下,所有的镜像都会从Docker Hub下载,只需要复制docker-compose.yml,在该目录下执行docker-compose up即可. 如果要查看完整的部署步骤,请参考这里基于Docker的即时通讯系统的持续集成发布说明

开发模式

如果你希望自己编译镜像,你必须克隆此代码,并在本地编译此项目。然后执行docker-compose -f docker-compose.yml -f docker-compose-dev.yml up

K8S中部署

如果想在k8s中部署,我们也提供yml配置,执行以下命令即可,详情参考即时通讯服务在k8s容器的部署说明

kubectl apply -f https://www.comsince.cn/download/cloud-native/universe-kube-deployment.yml

或者下载代码执行,push-connector支持扩展,以适应海量长连接,集群模式需要kafka支持,如果kafka没有启动成功,可以手动重启push-connector

kubectl apply -f ./universe-kube-deployment.yml

image

本地开发测试

NOTE: 准备好mysql与zookeeper服务,配置好相应的配置,直接启动push-connectorpush-group两个spring-boot服务即可

虚拟机部署

NOTE: 如果你希望直接脚本部署,参考脚本部署,例如如下是push-connector服务

  • 启动spring-boot-dubbo-push-connector链接网关服务
/opt/boot/push-api
├── jvm.ini
├── push-connector //可执行启动脚本
└── log
   └── push-connector.log //存放日志
└── lib
   └── spring-boot-dubbo-push-connector-1.0.0-SNAPSHOT.jar //可运行的jar
  • 执行启动服务
# 启动服务
./push-connector start
# 停止服务
./push-connector stop

CentOS部署

NOTE: 如果你在部署中遇到问题,可以到上面演示环境找到官方技术支持寻求解答,也可以到QQ群需求帮助,如果你有在其他环境成功安装的经验,欢迎反馈给我们

Windows部署

欢迎为此项目作出贡献

该项目是开源项目,欢迎提出建议或者提供意见反馈,如果你喜欢此项目,请点击star支持我们不断改进

感谢

此项目时在参考其他项目基础上完成,在此表示感谢

一次性赞助

本项目使用非商业性署名协议Creative Commons Attribution Non Commercial 3.0 Unported

但是随着项目的增长,也需要相应的资金支持,你可以通过以下方式来赞助此项目

支付宝 微信
图片替换文本 图片替换文本

技术支持

如果公司采用本项目或者需要有商业需求,需要二次开发,提供技术支持,联系QQ:1282212195

空文件

简介

[飞享]-基于t-io的即时通讯系统,采用服务化框架Dubbo实现应用服务化,使用SpringBoot构建应用,可做信令服务器使用,支持docker,k8s快速部署。Android版本支持私聊,群聊,支持voip通话,支持语音,短视频,图片,位置发送。web客户端基于vue框架,基于websocket协议,基于json的自定义文本协议实现消息解析,支持与android客户端实现消息互通。实现一端发布,多端同步消息,支持android端与web端音视频通话。[公测地址](https://chat.comsince.cn) 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/PingXingShiKong/universe_push.git
git@gitee.com:PingXingShiKong/universe_push.git
PingXingShiKong
universe_push
universe_push
master

搜索帮助