如何獲得 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 = 15000;
?
第二 ?處理推送通道的更新
當你的客戶端程序發現推送通道更新后,應用一定要將最新的推送通道 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 網絡連接的變換狀態判斷規則: 設備狀態的過度流程
你將推送服務發送至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分鐘。 |
更多資源請參考:
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
