天天看点

Android、iOS和Windows Phone中的推送技术

  推送技术的实现通常会使用服务端向客户端推送消息的方式。也就是说客户端通过用户名、key等id注册到服务端后,在服务端就可以将消息向所有活动的客户端发送。

  一、ios的推送技术

Android、iOS和Windows Phone中的推送技术

  在发送消息到客户端设备接收到消息的过程中,始终伴随这一个令牌的传送(device token)。要想使用apns提供消息服务,应用程序需要先向ios注册需要提供的一个必要的信息就是与当前设备有关的device token,ios在接收到devicetoken后,会向apns查询这个device token是否在apns上注册了(所有的ios设备在第一次使用时都需要向苹果服务器注册一个账号,否则无法从applestore下载应用,当然更无法使用推送服务了),如果已经注册,apns会直接向应用程序返回这个devicetoken。应用程序获得这个devicetoken后,表示apns已经允许向自己推送消息了,接着还需要将该device token发送给推送服务器(provider)。到这里应用程序已经成功将自己注册到apns中了。现在就可以通过provider产生要推送的消息,然后provider会将消息发送给apns服务器,最后apns服务器会直接向应用程序发送消息。这个过程比较复杂,不过看一下图2的描述就会对这一过程更加了解了。每一个流程描述前面的数字表示发送的时间先后顺序。

Android、iOS和Windows Phone中的推送技术

  二、windows phone的推送技术

  第1步:应用程序会向push client service请求一个push notification uri(①)。

  第2步:如果当前window phone设备已经在微软服务器注册了,push client service会从mpns(microsoft push notification service ,微软推送通知服务)获取push notification uri,并返回给应用程序,表示推送服务可用(②和③)。

  第3步:应用程序需要将push notification uri发送给自己的推送服务器(cloud service)(④)。

  第4步:如果需要推送消息,cloud service会将消息发送到mpns,然后mpns会将消息发送给push client service,最后由push client service将消息传送给应用程序(⑤、⑥和③)。

Android、iOS和Windows Phone中的推送技术

<a href="http://www.51testing.com/batch.download.php?aid=48042" target="_blank"></a>

Android、iOS和Windows Phone中的推送技术

  除了使用官方的推送方案外,现在国内涌现出多个第三方的推送方案,例如,极光推送(jpush)、百度推送等。读者也可以用一下,这些同时通常是免费的(可能推送多媒体数据需要收费)。

最新内容请见作者的github页:http://qaseven.github.io/