[![Build Status](https://travis-ci.org/comsince/universe_push.svg?branch=master)](https://travis-ci.org/comsince/universe_push)
[![GitHub license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/comsince/universe_push/blob/master/LICENCE)
# 飞享
![image](http://image.comsince.cn/fx-chat.png)
**NOTE:** 本项目为`飞享`即时通讯系统的Android客户端
## 适合快速部署的聊天系统
这是一个聊天系统的简单架构,解决大量用户需要即时通讯的解决方案,基于RPC框架Dubbo,SpringBoot构建微服务应用,提供Docker快速部署的解决方案。
提供Android客户端,Web客户端类似微信功能,包括`好友添加`,`私聊`,`群聊`,`一对一音视频通话`等基本功能
### 架构图
**NOTE:** 基本架构图说明为了帮助大家更快了解系统依赖的组件,方便大家快速本地部署
![image](attachment/push-universe.png)
### Android 客户端
[android-chat](https://github.com/comsince/android-chat)客户端,基于java nio实现TCP长连接,使用自定义的二进制协议,全新的心跳设计,实现与web端消息同步,音视频通话等功能。
> __<font color="#dd0000">扫码体验APK下载</font>__
![image](https://media.comsince.cn/minio-bucket-image-name/1-373z3zNN-1594953226715-fshare-chat-apk-qrcode.png)
**NOTE:** 本apk基于[android-chat](https://github.com/comsince/android-chat)构建替换为java协议栈开发
* 请选择其中任何一个帐号密码进行登录即可
```properties
帐号:13800000000, 13800000001, 13800000002
验证码:556677
```
* 技术咨询
当你登录上面其中一个测试帐号后,如果你有什么问题,请到通讯录找到`官方技术支持`发消息即可,你也可以在`IM即时通讯交流组`提问,如果在研究过程中有问题,可以随时咨询,本人尽量提供技术支持,但并不保证随时在线,请尽量在工作日时间发消息
* 官方QQ群交流
![image](http://image.comsince.cn/1-VYVLVL22-1587711095978-/storage/emulated/0/Tencent/QQ_Images/qrcode_1587711062833.jpg)
### 基于Vue的Web客户端
web客户端基于websocket通信,在此协议之上使用json格式的协议进行通讯,详情参见[vue-chat](https://github.com/comsince/vue-chat),支持文本,图片类型发送,支持实时音视频,支持音视频与[android-chat](https://github.com/comsince/android-chat)客户端互通
* 项目预览
![image](https://user-gold-cdn.xitu.io/2020/4/23/171a4cad1136926f?w=2162&h=1286&f=png&s=487836)
* 语音通话
![image](https://user-gold-cdn.xitu.io/2020/3/20/170f70e65d19d2ac?w=2880&h=1800&f=png&s=1120425)
* 视频通话
![image](https://user-gold-cdn.xitu.io/2020/3/20/170f70e73e8ad91e?w=2880&h=1800&f=png&s=1323835)
**NOTE:** [演示地址](http://www.comsince.cn/chat/index.html) 演示`账号`,`验证码`同手机版一致.由于这里使用的是http服务,chrome浏览器对非https的权限管控,建议使用edge浏览器测试音视频通话,当然你也可以本地部署
#### Vue-Chat公测地址
* 公测地址[chat.comsince.cn](https://chat.comsince.cn)
**NOTE:** 注意`公测地址`与`演示地址`两套环境是独立的,数据不互通,公测环境请使用手机号+验证码登录,如需技术支持或意见反馈请加好友`13900000001`官方技术支持,公测地址带宽只有1M,首次加载可能需要时间比较长,请耐心等待
## 服务说明
聊天系统为了适应大规模用户的链接请求,将服务分为`链接服务`和`消息服务`,它们都是独立的,可以单独部署也可以集群部署
### 链接服务[push-connector]
用于解决用户的链接请求,支撑百万级用户的链接,可单机部署,可集群部署。如果你存在大规模用户链接,可以启动集群模式,参考[K8s自动伸缩模式](#k8s_deployment)
### 消息服务[push-group]
用于用户处理用户管理,会话管理,离线消息处理,群组管理等功能,是整个即时通讯系统的业务处理模块
## 自动化构建
增加持续集成的好处
* 随时随地发布软件
* 任何一次构建都能触发一次发布
* 只需发布一次artifact,即可随时发布
**NOTE:** 以下是发布持续交付工作流图
![image](https://cloud.githubusercontent.com/assets/6069066/14159789/0dd7a7ce-f6e9-11e5-9fbb-a7fe0f4431e3.png)
## 如何启动服务
本机部署只需要两个`SpringBoot`服务,一个`Mysql`服务,一个`zookeeper`服务,链接服务`push-connector`集群模式还需要`kafka`支持
### 部署前准备
* 安装`docker`与`docker-composer`,如果需要在k8s中部署,请准备好相关的环境
* 确保编译此项目`mvn clean package -Dmaven.test.skip=true`
### 生产模式
这种模式下,所有的镜像都会从Docker Hub下载,只需要复制`docker-compose.yml`,在该目录下执行`docker-compose up`即可.
如果要查看完整的部署步骤,请参考这里[基于Docker的即时通讯系统的持续集成发布说明](https://www.comsince.cn/2019/08/07/docker-continuous/#%E4%BB%8Edocker-hub%E4%B8%8B%E8%BD%BD%E9%95%9C%E5%83%8F%E5%8F%91%E5%B8%83im%E7%B3%BB%E7%BB%9F)
### 开发模式
如果你希望自己编译镜像,你必须克隆此代码,并在本地编译此项目。然后执行`docker-compose -f docker-compose.yml -f docker-compose-dev.yml up`
### K8S中部署<a name="k8s_deployment"/>
如果想在k8s中部署,我们也提供yml配置,执行以下命令即可,详情参考[即时通讯服务在k8s容器的部署说明](https://www.comsince.cn/2019/08/12/universe-kubenetes-intro/)
```shell
kubectl apply -f https://www.comsince.cn/download/cloud-native/universe-kube-deployment.yml
```
或者下载代码执行,`push-connector`支持扩展,以适应海量长连接,集群模式需要`kafka`支持,如果kafka没有启动成功,可以手动重启`push-connector`
```shell
kubectl apply -f ./universe-kube-deployment.yml
```
![image](http://image.comsince.cn/push-connector-scale.png)
## 本地开发测试
**NOTE:** 准备好mysql与zookeeper服务,配置好相应的配置,直接启动`push-connector`和`push-group`两个spring-boot服务即可
## 虚拟机部署
**NOTE:** 如果你希望直接脚本部署,[参考脚本部署](README-Linux.md),例如如下是`push-connector`服务
* 启动`spring-boot-dubbo-push-connector`链接网关服务
```shell
/opt/boot/push-api
├── jvm.ini
├── push-connector //可执行启动脚本
└── log
└── push-connector.log //存放日志
└── lib
└── spring-boot-dubbo-push-connector-1.0.0-SNAPSHOT.jar //可运行的jar
```
* 执行启动服务
```shell
# 启动服务
./push-connector start
# 停止服务
./push-connector stop
```
## CentOS部署
**NOTE:** 如果你在部署中遇到问题,可以到上面演示环境找到`官方技术支持`寻求解答,也可以到QQ群需求帮助,如果你有在其他环境成功安装的经验,欢迎反馈给我们
* [即时聊天系统在Centos上单机部署实践](https://www.comsince.cn/2020/04/13/universe-push-start-on-centos/)
## Windows部署
* [即时聊天系统在Windows上单机测试部署实践](https://www.comsince.cn/2020/05/07/universe-push-start-on-windows/)
## 欢迎为此项目作出贡献
该项目是开源项目,欢迎提出建议或者提供意见反馈,如果你喜欢此项目,请点击`star`支持我们不断改进
## 感谢
此项目时在参考其他项目基础上完成,在此表示感谢
* [t-io](https://github.com/tywo45/t-io)
* [wildfirechat](https://gitee.com/wildfirechat/server)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
[飞享]-全开源即时通讯(IM)系统的Android客户端,底层协议栈使用Java NIO进行完全自主改造,全新的心跳设计,全新的二进制协议设计,支持与[飞享] Web客户端消息互通。支持文本,语音,视频等常用功能 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
资源推荐
资源详情
资源评论
收起资源包目录
[飞享]-全开源即时通讯(IM)系统的Android客户端.zip (1091个子文件)
mars-core-release.aar 8.1MB
avenginekit.aar 106KB
IRemoteClient.aidl 9KB
ISendMessageCallback.aidl 335B
IGetChatRoomMembersInfoCallback.aidl 327B
IOnReceiveMessageListener.aidl 304B
IGetChatRoomInfoCallback.aidl 299B
IOnGroupMembersUpdateListener.aidl 288B
IOnGroupInfoUpdateListener.aidl 262B
IOnUserInfoUpdateListener.aidl 257B
IOnFriendUpdateListener.aidl 252B
IOnConnectionStatusChangeListener.aidl 240B
ISearchChannelCallback.aidl 235B
IGetRemoteMessageCallback.aidl 232B
ICreateChannelCallback.aidl 232B
IUploadMediaCallback.aidl 230B
IGetGroupsCallback.aidl 229B
ISearchUserCallback.aidl 227B
IGetGroupInfoCallback.aidl 225B
IGeneralCallback3.aidl 206B
IOnChannelInfoUpdateListener.aidl 185B
IGeneralCallback2.aidl 175B
IGeneralCallback.aidl 157B
ConversationSearchResult.aidl 153B
MessagePayload.aidl 150B
ModifyMyInfoEntry.aidl 146B
GroupSearchResult.aidl 146B
MessageContent.aidl 145B
ConversationInfo.aidl 145B
FriendRequest.aidl 142B
Conversation.aidl 141B
GroupMember.aidl 140B
ChannelInfo.aidl 140B
UnreadCount.aidl 140B
Message.aidl 138B
GroupInfo.aidl 138B
UserInfo.aidl 137B
IOnSettingUpdateListener.aidl 127B
ChatRoomMembersInfo.aidl 86B
ChatRoomInfo.aidl 79B
gradlew.bat 2KB
chat-show.gif 2.8MB
加班.gif 699KB
写个J8代码,老子不干了.gif 530KB
自己上网查.gif 289KB
敲代码.gif 261KB
劳资再也不写代码了.gif 191KB
MySQL从删库到跑路.gif 46KB
垃圾语言,毁我青春.gif 23KB
在你们聊天的时候,我已经写了好几万行代码了.gif 22KB
垃圾软件,毁我青春.gif 16KB
垃圾QQ,毁我青春,颓我精神,耗我钱财.gif 13KB
别跑,回来把代码写完.gif 9KB
.gitignore 3KB
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
build.gradle 4KB
build.gradle 2KB
build.gradle 2KB
build.gradle 1KB
build_libraries.gradle 1KB
build.gradle 716B
build.gradle 685B
settings.gradle 155B
build.gradle 93B
build.gradle 87B
gradlew 5KB
joda-time-2.5-sources.jar 731KB
MiPush_SDK_Client_3_6_9.jar 700KB
push-nio-sdk-1.0.0-SNAPSHOT.jar 675KB
joda-time-2.5.jar 574KB
TencentMapSDK_Raster_v_1.2.7_51ae0e7.jar 212KB
TencentLocationSDK_v4.9.7.12_r247861_161205_1104.jar 206KB
TencentSearch1.1.3.jar 198KB
pinyin4j-2.5.0.jar 184KB
gradle-wrapper.jar 52KB
WFCMessage.java 1.84MB
ChatManager.java 107KB
ClientService.java 85KB
AbstractProtoService.java 35KB
CropImageView.java 29KB
ConversationActivity.java 27KB
JavaProtoLogic.java 26KB
ProtoMessageDataStore.java 24KB
FileUtils.java 24KB
ImMemoryStoreImpl.java 23KB
ConversationViewModel.java 22KB
ProtoService.java 21KB
SystemBarTintManager.java 19KB
ConversationMessageAdapter.java 19KB
ConversationInputPanel.java 16KB
ConversationListAdapter.java 16KB
DataStoreFactory.java 16KB
GroupConversationInfoFragment.java 16KB
ImageUtils.java 14KB
MainActivity.java 14KB
ConversationListViewModel.java 13KB
共 1091 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
妄北y
- 粉丝: 9612
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功