推送服务器,可以对接所有的系统厂商推送服务或者第三方推送服务。
|
há 1 semana atrás | |
---|---|---|
.github | há 3 anos atrás | |
apns | há 9 meses atrás | |
config | há 9 meses atrás | |
fcm | há 4 anos atrás | |
src | há 1 semana atrás | |
.gitignore | há 4 anos atrás | |
LICENSE | há 6 anos atrás | |
README.md | há 2 meses atrás | |
mvnw | há 6 anos atrás | |
mvnw.cmd | há 6 anos atrás | |
pom.xml | há 1 mês atrás | |
push.md | há 3 anos atrás |
作为野火IM的推送服务的演示,支持小米、华为、魅族、OPPO、Vivo、苹果apns和谷歌FCM。并且可以添加更多的推送厂商和自定义推送模式。
推送功能对于所有IM来说都是非常重要的功能,然而手机系统又没有统一的推送服务,对接起来难度很大。另外一方面客户有不同对接需求,有的要求使用第三方,有的要求使用厂商推送,有的需要在海外添加谷歌推送,有的对推送的格式有不同的要求。
为了满足各种各样的需求,提供足够好的灵活性,野火IM把推送子系统独立出来,客户只要理解了推送子系统运行的原理,就能做好各种自定义处理。
如果架构图无法查看,可以点击这里查看
图中紫色部分为推送子系统,推送子系统的所有源码都是开源的,且可以随意修改。推送子系统的工作流程如下:
一般情况下有2种推送,一种是本地通知,另外一种是远程推送。
本地通知和远程推送在手机上的表现很接近,都是应用放到后台,然后有人给此账号发送消息,通知栏弹出通知。实际上处理流程完全不同。本项目处理的是远程推送。在处理通知问题时,首先要确认的是本地通知还是远程推送。
IM服务判断是否需要推送,需要做如下判断:
接入推送并不是简单得将推送服务跑起来即可,请详细阅读接入推送流程
由前面的介绍可以看出,推送子服务是独立于IM服务,而且客户端和服务器部分都是开源的,而且考虑到了扩展性,可以很容易地添加其它推送类型。具体步骤如下:
我们提供有个推的分支,切换过去,然后按照个推文档申请推送功能。但要注意只有开通厂商推送功能才可以真的做到离线推送。极光推送可以参考个推或者上面添加其他推送服务的说明来添加,注意同样需要开通厂商推送来实现离线推送。
UNDER MIT LICENSE. 详情见LICENSE文件