消息通知
一、介绍
消息通知是指服务器将新的消息发送给客户端。由于客户端与服务器存在联网或不联网的可能性,消息通知主要分为2个通道:TCP长连接通道以及手机厂家推送通道。
二、TCP长连接通道
当手机APP与服务器连线时,双方之间有一个TCP连接,服务器知道这条TCP连接活动时,会主动通过该通道将新消息发送给客户端,客户端因此收到消息通知。
从上述的原理中可以得知,APP获取新消息通知的基本条件是,APP与服务器处以联网状态。
三、手机厂家推送通道
当手机APP与服务器离线时,TCP连接断开,服务器判断该帐号的APP是否支持消息推送,如果支持,服务器会将消息推送至该用户所支持的消息推送通道地址(手机厂家消息推送服务器),然后由手机厂家将该消息发送至对应手机,手机此时会收到消息推送。
支持消息推送的手机厂家,并且有度适配的有:苹果、华为、小米和魅族。
四、常见问题
1.怎么判断消息通知是来自哪个通道?
- APP与服务器是否联网;
- 手机品牌是否属于苹果、华为、小米、魅族其中之一;
2.如何判断APP是否联网?
安卓端需要保持APP常驻后台。苹果APP不支持常驻后台,只要切换到前台TCP连接通道就会断开,此时会走消息推送通道。
3.不支持消息推送的手机怎么办?
请保持APP常驻后台,并且网络保持开启,保证手机当前帐号处于在线状态。
4.为什么我的手机APP满足消息通知的条件,但是依然没有消息通知?
- 请您确认您的电脑端是否在线,默认电脑端在线时,手机通知关闭。 开启方式:手机端-会话界面顶部-取消手机静音。
- 若您的手机符合消息推送条件,请您确认手机是否可以访问互联网。
5.有度服务器的防火墙策略中,管理员需要开放哪些目标地址、端口?
目标地址 | 端口 | 描述 |
---|---|---|
api.youdu.im | 80,443 | 有度推送通道 |
api.push.hicloud.com | 443 | 华为推送通道(接口) |
login.vmall.com | 443 | 华为推送通道(验证) |
api.xmpush.xiaomi.com | 443 | 小米推送通道 |
server-api-push.meizu.com | 80 | 魅族推送通道 |
gateway.push.apple.com | 2195 | 苹果推送通道 |
feedback.push.apple.com | 2196 | 苹果推送通道(反馈) |