如何獲得 Microsoft Push Notification Service(MPNS)的最佳體驗

有很多同学抱怨MPNS的各种问题,其中包括服务超时、返回各种错误代码不知如何处理等等。。今天我用一点时间来为大家介绍下如何处理和操作咱们的MPNS。

首先为大家明确一个问题,Microsoft Push Notification Service (MPNS) 是执行的异步推送。今天将介绍如何使用高效的服务将我们的推送信息发送至云端最终发送到 Windows Phone 手机。

 

第一 如何设置发送超时

对于超时时间我建议大家设置为 15秒。例如:你使用的 ASP.NET 进行数据推送时,建立 WebRequest 对象设置超时时间

HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
request.Timeout = 15;

 

第二 处理推送通道的更新

当你的客户端程序发现推送通道更新后,应用一定要将最新的推送通道 URL 更新到你的服务器端。要保证您的服务器端的推送通道是最新的。建议你可以使用 device ID 与推送通道进行匹配,如果发现推送通道的URL更新就立刻进行推送通道更新,服务器通过device ID进行判断是,新用户注册还是已有用户的推送通道更新。

Windows Phone 的官方资料中提供了如何建立一个接受推送消息的应用代码示例,其中包括了如何处理,推送通道更新事件。您可以参考 如何发送和接收 Windows Phone 的磁贴通知 了解如何使用PushChannel_ChannelUriUpdated方法。(另:推送通道长度也许会超过 1024 characters)

 

第三 使用已验证的 Web 服务以发送 Windows Phone 的推送通知

使用MPNS认证端,如果你的推送服务针对一台WindowsPhone设备24小时内推送消息数量超过500条,或者您想更安全的推送消息。另使用没有MPNS验证的终端进行推送,每日的推送限额是500条/每个device。

如何设置 MPNS验证的终端。

设置已验证的 Web 服务以发送 Windows Phone 的推送通知

No-quota push notifications using a root Certificate Authority

另外,如果你的推送服务超过每天500条的推送对每台设备,有一点您就需要额外的考虑用户的手机电量是使用情况了。

 

第四 根据MPNS返回的代码进行处理

通常移动设备的网络都会变化的,了解 Windows Phone 网络连接的变换状态判断规则:设备状态的过度流程

如何獲得 Microsoft Push Notification Service(MPNS)的最佳體驗

你将推送服务发送至MPNS,随后MPNS会将设备的信息返回,你需要观察设备状态(Windows Phone 的推送通知服务响应代码),在进行处理我推荐一些做法如下:

Response code Notification status Device connection status Subscription status Recommendations
200 OK QueueFull Connect Active 建议从新发送通知,但是可以设置一个重发时间间隔,如果还收到同样错误代码尝试延长重试时间:4 – 8 – 16 分钟以此类推到32分钟。
200 OK QueueFull Temp Disconnected Active 建议从新发送通知,但是可以设置一个重发时间间隔,如果还收到同样错误代码尝试延长重试时间:2 – 4 – 8 分钟以此类推到 24 小时。
404 Not Found Dropped * Any Connection Status Expired 不需要再尝试发送消息了,因为这个推送通道已经不存在了。

412 Precondition Failed

Dropped Disconnected N/A 建议每小时尝试一次从新发送,但是如果超过24小时还是返回相同错误,就停止推送。
503 N/A N/A N/A 建议从新发送通知,但是可以设置一个重发时间间隔,如果还收到同样错误代码尝试延长重试时间:5 – 10 – 20 – 40 秒以此类推到30分钟。

更多资源请参考:

发送 Windows Phone 的推送通知

Windows Phone 的推送通知服务响应代码

更多相关文章
一周排行
  • href的那些事
    很多网站中都会使用<a>标签和 href属性来做链接,尤其在分页显示中用得最普 ...
  • 


    		    軟考培訓2014年5月考試試題閱讀有感
    软考培训-2014年5月考试试题阅读有感 刘毅 [email protected] 转载注明出 ...
  • 6 9 ERROR nova.compute.manager [req-60d19cd5-f33c-41cd29-c3fddf3f66a5 b48636e80c57494e929 ...
  • 


    		    20150913 Linux Shell
    Part 1 学习整理 第一.shell概述 Bshell是解释器 硬件->Kern ...
  • 第一次安装ECmall,安装了好多遍,总是出现Strict Standards: Non-static method这样的错误,折腾了五六遍,还是安装不上,仍然是类似的错误.气愤!于是上百度查:Ecmall安装时出现
  • SAP ABAP開發技術總結程序自己以JOB方式運行
    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs
  • 


    		    Windows VPN伺服器配置7啓用L2TP方式CA模式訪問②
    接上节的哈,应该是说L2TP/IPSec方式配置VPN.继续...... 在服务器端导入证 ...
  • liveusb-creator The liveusb-creator is a cross-platform tool for easily installing live operating systems on
  • 首先申明:有错误的地方还请指出,谢谢! 1,去这个地方下载 https://marketplace.atlassian.com/plugins/com.atlassian.jira.plugin.ext.subver
  • 在学习.QoS在二层分类上使用Cos值,分为,8个级别.7的优先级最高,0最低.Cisco做了相关的定义. Cos=0------best-effort data,尽力而为的数据(不分类,全部转发) Cos=1