(一)APNS 消息推送 原理


参考:http://blog.csdn.net/wowxavi1/article/details/8585480




iOS消息推送的工作机制可以简单的用下图来概括:


 

Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。

 

上图可以分为三个阶段:

第一阶段:自己的服务器(Provider)把要发送的消息(message)、目的iPhone的标识打包(token),发给APNS,当然发送时还需要用到验证(SSL证书)。 

第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。 

第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。

 

从上图我们可以看到:

1、应用程序注册 消息推送。

2、iOS从APNS Server获取device token,应用程序接收device token。

3、应用程序将device token发送给PUSH服务端程序。

4、服务端程序向APNS服务发送消息。

5、APNS服务将消息发送给iPhone应用程序。

 

无论是iPhone客户端和APNS,还是Provider和APNS,都需要通过证书进行连接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
APNS(Apple Push Notification Service)是苹果公司提供的一种服务,在移动应用开发中广泛应用。下面介绍如何使用C#实现APNS消息。 首先,需要获取APNS证书。具体步骤如下: 1. 登录苹果开发者中心,进入Certificates, Identifiers & Profiles页面。 2. 选择Identifiers选项卡,然后选择App IDs选项,找到你要的App ID。 3. 点击Edit按钮,然后勾选Push Notifications选项,保存。 4. 选择Certificates选项卡,点击左下角的“+”按钮,选择“Apple Push Notification service SSL (Sandbox & Production)”选项,按照提示生成证书。 5. 下载证书并安装到电脑中。 接下来,使用第三方库完成APNS消息。常用的库有apns-sharp、PushSharp等。这里以PushSharp为例。 1. 安装PushSharp库。可以通过NuGet安装,也可以从GitHub上下载源码编译。 2. 创建服务对象。代码如下: ``` ApnsConfiguration config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, "your_certificate_path", "your_certificate_password"); ApnsService service = new ApnsService(config); ``` 其中,第一个参数是环境类型,可以选择生产环境或者测试环境;第二个参数是证书路径;第三个参数是证书密码。 3. 创建消息对象。代码如下: ``` ApnsNotification notification = new ApnsNotification(DEVICE_TOKEN, new ApnsPayload("Hello, world!")); ``` 其中,第一个参数是设备的token;第二个参数是消息的内容。 4. 发消息。代码如下: ``` service.QueueNotification(notification); service.Stop(); ``` 其中,QueueNotification方法用于将消息加入发队列;Stop方法用于停止服务。 完整代码示例: ``` using PushSharp; using PushSharp.Apple; using System; namespace APNSDemo { class Program { static void Main(string[] args) { ApnsConfiguration config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, "your_certificate_path", "your_certificate_password"); ApnsService service = new ApnsService(config); string DEVICE_TOKEN = "your_device_token"; ApnsNotification notification = new ApnsNotification(DEVICE_TOKEN, new ApnsPayload("Hello, world!")); service.QueueNotification(notification); service.Stop(); Console.WriteLine("Push notification sent."); Console.ReadLine(); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值