为了验证我的逻辑分析,分别尝试了用ios系统手机和Android系统手机登陆FB,都是在断开VPN还是能接收到FB 的消息推送。
分析得出大概是有两种路径:
推送路径1:Facebook服务器 推送到用户手机中
因为facebook服务器被墙所以facebook到用户手机这条路是断的,所以收不到。
推送路径2:Facebook服务器 推送到 Apple服务器/Google服务器 推送到 手机中
没有直接和facebook服务器交互,所以facebook服务器被墙不会影响消息推送。
ios因为苹果的限制只能使用路径2,所以任何消息都可以正常收到推送。
android因为开发人员权限高,所以很多App都建立了自己推送机制,就是路径1。
再加上Google服务在国内稳定程度不确定,所以国内的许多应用倾向于使用路径1。
大家不翻墙能收到Facebook的推送,说明facebook消息通过了google的服务器也就是路径2推送的。
这样的状态是比如你的好友 Like了你的一条消息,这个时候,Facebook 的服务端,向苹果的服务器推送一条短消息.,然后苹果的服务器再将此消息推送到你的手机上。这样iOS 的消息推送相当于苹果的服务器是Facebook 跟你本地应用之间的消息代理,这样的好处是 你的手机上的 Facebook 应用不用单独在后台接受推送消息了,不过: 这样接受到的推送在 iOS 8 之前一般只是一条简短的消息说明.不过如果是长消息的话,还是需要Facebook客户端自己去自己的服务端读取. 因为 iOS 8之前,如果推送的消息长度超过 256字节是会被丢弃的. iOS 8 之后改为最大长度支持增大到 2K)
回国后不上facebook怎么能习惯呢,简单的网络代理就可以破除障碍,轻松和朋友联系。
ios系统手机可以下载这个flyvpn代理客户端
flyvpn客户端 |
账号密码登陆 |
登陆后的界面 |
配置的文件 |
选择节点,打开vpn进行连接 |
不上FB不舒服斯基,问题解决了~