# fpush
**Repository Path**: cybernaut/fpush
## Basic Information
- **Project Name**: fpush
- **Description**: 即时消息推送服务(即时通讯),基于Netty+protobuf-- Instant Messaging push service based on Netty+protobuf
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2022-12-04
- **Last Updated**: 2022-12-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# fpush
fpush是即时消息推送服务程序.
旨在做一个类似于极光推送,小米推送之类的Java程序开源实现。基于Netty + protobuf
👉 [fpush源码解析与使用(中文)](https://github.com/liushaoming/fpush/blob/master/README-CH.md)
fpush监控后台,点击进入演示
👉 [http://fpush-admin.appjishu.com](http://fpush-admin.appjishu.com)
如果该项目对您有帮忙,您可以右上角'star'支持一下,谢谢!

## 技术栈
1. JDK1.8
2. Netty-4.1.31.Final
3. protobuf-java 3.6.1
## 代码简介
fpush-core 核心类库,protobuf原型类
fpush-server server端, 接受来自自己的应用服务器的http推送请求,并把请求转换成netty的socket发送给fpush-client
实现消息推送,即时通讯技术。
fpush-client 客户端,模拟App或者网页,或者桌面应用的客户端
## 系统架构
### 1.系统部署架构图如下:

源码和技术架构分析详情见
👉 [fpush源码解析与使用(中文)](https://github.com/liushaoming/fpush/blob/master/README-CH.md)
## 运行
eclipse/IDEA里
Step1 右键run as--java application-- FpushServerApp.java
Step2 右键run as--java application-- FpushClientApp.java
Step3 后台发送消息给fpush-client (用来模拟android,ios或者网页,或者java应用的消息客户端)
浏览器访问 http://localhost:10200
显示Welcome to fpush application!, 说明server运行起来了
然后浏览器请求
http://localhost:10200/app/push?receiverAlias=lsm001&title=系统提醒&desc=消息内容001&data=abc
如果浏览器返回OK
并且fpush-client打印出下面的信息,说明推送消息成功
2018-11-19 14:28:44.792 INFO 27780 --- [ntLoopGroup-2-1] c.a.f.client.handler.PushConfirmHandler : --->>>这是推送到客户端的消息:title=fpush-Demo
2018-11-19 14:29:17.067 INFO 27780 --- [ntLoopGroup-2-1] c.a.f.client.handler.PushConfirmHandler : --->>>这是推送到客户端的消息:description=这是一条推送给lsm001的消息!
Step4 Android演示 http://appjishu.com:10200/monitor/channelList
host:appjishu.com