系统概览

app接入除了接入restApi(push-admin)之外,还需要兼容connector(push-admin的client,用于和push-server通信)的通信协议。

基于protostuff编解码,协议定义参考PushRequest.java/PushResponse.java。

推送:只有下行消息(服务端到app)

IM:分上下行消息(app到服务端再到app)

演示

1.创建开发者账号

2.创建app

APP设备注册

APP鉴权

推送:鉴权成功后拿到真实的推送服务ip地址,然后建立长连接并发起注册请求,后续等待后台推送消息即可。

IM:同上述流程,只不过前提需要建立好友、群组等关系,ok后就可以发起聊天了。

3.选择APP,点击发布消息

4.admin收到推送指令,下发给所有当前app关联的设备id

6.推送服务收到admin转发的推送指令,依次下发到注册设备的长连接上

7.客户端收到来自管理员的推送消息

架构图

app为移动设备,3rdparty为三方服务(一般时服务端)。

模块讲解

restApi(admin),开放给三方的功能接口。

开发者注册

app设备鉴权

好友管理

群组管理

推送管理

connector

连接pushServer的桥梁,内置在pushAdmin

自动发现服务

一致性hash路由

客户端故障转移

router

维护用户和连接的映射

维护用户和服务的映射

pushServer

注册连接

推送消息

路由转发

webProxy

对connector做了一层封装,暴露websocket协议

推送流程

IM流程大致同推送流程,只不过多了一层上行消息(通过restApi发布消息,pushServer再基于好友/群组关系路由到各个对端应用)。

私信回复"hanbo-push"获取链接地址,喜欢的点个关注,一起学习探讨新技术。

java 消息推送_hanbo-push分布式消息推送、IM服务相关推荐

  1. 浅谈消息队列及常见的分布式消息队列中间件

    背景 分布式消息队列中间件是是大型分布式系统不可缺少的中间件,通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息.所以消息队列主要解决应用耦合.异步消 ...

  2. 21 利用分布式消息队列降低系统耦合性

    国内某大型互联网企业经常因为对同行的产品进行微创新,然后推岀自己的产品而遭人诟病,不讨论这种做法是否合适,我们分析这些产品,发现大多数都比原创产品有 更好的用户体验.这些产品常常后来居上,更速度地推岀 ...

  3. 5行代码实现微信模版消息推送,springboot实现微信推送,java微信推送

    视频讲解:https://edu.csdn.net/course/detail/23750 今天来带大家学习下微信模版消息推送. 先看效果图: 核心代码只有下面几行,即可轻松实现微信模版消息推送 // ...

  4. 因误推送“台风致全省人死亡”消息 腾讯视频push线团队全部被开?回应...

    近日,因为台风利奇马的到来,山东.浙江等多地受汛情影响损失日重,且有人员伤亡,灾情牵动人心,全网网友都对此时刻关注. 但是今天,腾讯视频却因为推送的一则消息而惹了众怒. 腾讯视频推送的消息称:&quo ...

  5. 微信公众号 - Java推送小程序订阅消息给用户

    不啰嗦,我们直接开始! 本文使用体验版小程序进行调试. 一.开发前小程序准备: 1.登录微信公众平台 点开下面链接,使用微信扫码 微信公众平台 然后选择一个小程序并登录 2.在小程序后台找到Appid ...

  6. 微信公众号 - Java推送公众号模板消息给用户

    不啰嗦,我们直接开始! 由于没有公众帐号,本文使用微信公众平台接口测试帐号进行调试. 一.申请测试帐号 1.使用微信扫码登录下面网址 微信公众平台 (qq.com) 2.找到appID和appsecr ...

  7. App推送推了10万打开100?3招提高消息推送(Push)到达率

    消息推送(push)是App提醒或唤醒用户的方式之一也是App运营的渠道之一,运用得当可以帮助产品运营人员更高效地实现运营目标,相反盲目运用也会让App变得让人讨厌.因而推送(Push)的到达率越来越 ...

  8. 微信公众号-java上传图片素材到微信服务器基于事件推送两条消息

    微信公众号-java上传图片素材到微信服务器&基于事件推送两条消息 场景:基于微信扫码登录/关注事件,向用户推送两条消息. 分析:翻阅了微信开发者文档和一些其他资料发现,公众号针对用户关注/扫 ...

  9. Java后端实现安卓/IOS移动端消息推送(百度云推送)

    本文主要介绍Java服务器端如何借助第三方推送平台(百度云推送)推送给移动端消息. 使用案例介绍: 根据客户的需求,需要做一个类似淘宝消息推送的功能,客户下订单.订单付款.订单商品已发货,以及客户完成 ...

最新文章

  1. 号称下一代可视化监控系统,结合SpringBoot使用,贼爽!
  2. 用户id生成规则_阿里/网易/美团/58用户画像中的ID体系建设
  3. 计算机网络中的高层应用,第四章计算机网络中的高层应用-.ppt
  4. linux终端炫酷命令,你不得不知道11个炫酷的 Linux 终端命令
  5. mysql加锁6_MySQL优化(6):Mysql锁机制
  6. java图像在背景图移动_java – 在Swing中移动背景图像
  7. 主类main方法里面可以有不带public的子类 但是不能有接口
  8. mySQL 开启事件存储过程
  9. 数据库高可用实战案例——架构优化之清爽一夏
  10. CryoSat-2卫星介绍
  11. Delphi2007卸载
  12. Oracle P6培训系列:10增加作业并估算工期
  13. java keytool 导出证书,keytool 导出证书
  14. 各种dns:百度DNS/阿里DNS/114DNS/腾讯DNS/谷歌DNS/OpenDNS 对比评测
  15. 申请德国农工大学计算机案例,【2014】德州农工大学:腼腆男的春天
  16. java stringbuilder 构造函数_java---StringBuilder类的用法(转载)
  17. Cisco路由器和交换机型号
  18. 用纯CSS写一个左右滑动的开关按钮
  19. 获取Excel单元格存储日期格式数据
  20. echarts 日历图

热门文章

  1. 直播预告 | 基于多智能体交流游戏的零资源机器翻译
  2. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task5:模型训练与验证
  3. 如何修改作者名称_PS2019中如何扩展文本选区 ps扩展文本选区的图文教程_photoshop教程...
  4. 【Java后台】Java执行Python代码的3类5种情况测试【Java源码+Python源码举例】
  5. 小程序确定取消弹窗_微信小程序定制开发价格确定条件?
  6. 刚构桥的优缺点_连续刚构桥相对于连续梁来说有优点吗
  7. linux declare大小写,关于linux:将用户输入转换为大写
  8. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01
  9. Mybatis注解开发(一对一)
  10. java修改字节码技术,Javassist修改class,ASM修改class