如何獲得 Microsoft Push Notification Service(MPNS)的最佳體驗(yàn)
有很多同學(xué)抱怨MPNS的各種問題,其中包括服務(wù)超時(shí)、返回各種錯(cuò)誤代碼不知如何處理等等。。今天我用一點(diǎn)時(shí)間來為大家介紹下如何處理和操作咱們的MPNS。
首先為大家明確一個(gè)問題,Microsoft Push Notification Service (MPNS) 是執(zhí)行的異步推送。今天將介紹如何使用高效的服務(wù)將我們的推送信息發(fā)送至云端最終發(fā)送到 Windows Phone 手機(jī)。
?
第一 ?如何設(shè)置發(fā)送超時(shí)
對于超時(shí)時(shí)間我建議大家設(shè)置為? 15秒 。例如:你使用的 ASP.NET 進(jìn)行數(shù)據(jù)推送時(shí),建立 WebRequest 對象設(shè)置超時(shí)時(shí)間
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;?
request.Timeout = 15000;
?
第二 ?處理推送通道的更新
當(dāng)你的客戶端程序發(fā)現(xiàn)推送通道更新后,應(yīng)用一定要將最新的推送通道 URL 更新到你的服務(wù)器端。 要保證您的服務(wù)器端的推送通道是最新的 。建議你可以使用? device ID? 與推送通道進(jìn)行匹配,如果發(fā)現(xiàn)推送通道的URL更新就立刻進(jìn)行推送通道更新,服務(wù)器通過device ID進(jìn)行判斷是,新用戶注冊還是已有用戶的推送通道更新。
Windows Phone 的官方資料中提供了如何建立一個(gè)接受推送消息的應(yīng)用代碼示例,其中包括了如何處理,推送通道更新事件。您可以參考? 如何發(fā)送和接收 Windows Phone 的磁貼通知 ?了解如何使用 PushChannel_ChannelUriUpdated 方法。(另:推送通道長度也許會(huì)超過 1024 characters)
?
第三 ?使用已驗(yàn)證的 Web 服務(wù)以發(fā)送 Windows Phone 的推送通知
使用MPNS認(rèn)證端,如果你的推送服務(wù)針對一臺(tái)WindowsPhone設(shè)備24小時(shí)內(nèi)推送消息數(shù)量超過500條,或者您想更安全的推送消息。另使用沒有MPNS驗(yàn)證的終端進(jìn)行推送,每日的推送限額是500條/每個(gè)device。
如何設(shè)置 MPNS驗(yàn)證的終端。
設(shè)置已驗(yàn)證的 Web 服務(wù)以發(fā)送 Windows Phone 的推送通知
No-quota push notifications using a root Certificate Authority
另外,如果你的推送服務(wù)超過每天500條的推送對每臺(tái)設(shè)備,有一點(diǎn)您就需要額外的考慮用戶的手機(jī)電量是使用情況了。
?
第四 ?根據(jù)MPNS返回的代碼進(jìn)行處理
通常移動(dòng)設(shè)備的網(wǎng)絡(luò)都會(huì)變化的,了解 Windows Phone 網(wǎng)絡(luò)連接的變換狀態(tài)判斷規(guī)則: 設(shè)備狀態(tài)的過度流程
你將推送服務(wù)發(fā)送至MPNS,隨后MPNS會(huì)將設(shè)備的信息返回,你需要觀察設(shè)備狀態(tài)( Windows Phone 的推送通知服務(wù)響應(yīng)代碼 ),在進(jìn)行處理我推薦一些做法如下:
| Response code | Notification status | Device connection status | Subscription status | Recommendations |
| 200 OK | QueueFull | Connect | Active | 建議從新發(fā)送通知,但是可以設(shè)置一個(gè)重發(fā)時(shí)間間隔,如果還收到同樣錯(cuò)誤代碼嘗試延長重試時(shí)間:4 – 8 – 16 分鐘以此類推到32分鐘。 |
| 200 OK | QueueFull | Temp Disconnected | Active | 建議從新發(fā)送通知,但是可以設(shè)置一個(gè)重發(fā)時(shí)間間隔,如果還收到同樣錯(cuò)誤代碼嘗試延長重試時(shí)間:2 – 4 – 8 分鐘以此類推到 24 小時(shí)。 |
| 404 Not Found | Dropped | * Any Connection Status | Expired | 不需要再嘗試發(fā)送消息了,因?yàn)檫@個(gè)推送通道已經(jīng)不存在了。 |
|
412 Precondition Failed |
Dropped | Disconnected | N/A | 建議每小時(shí)嘗試一次從新發(fā)送,但是如果超過24小時(shí)還是返回相同錯(cuò)誤,就停止推送。 |
| 503 | N/A | N/A | N/A | 建議從新發(fā)送通知,但是可以設(shè)置一個(gè)重發(fā)時(shí)間間隔,如果還收到同樣錯(cuò)誤代碼嘗試延長重試時(shí)間:5 – 10 – 20 – 40 秒以此類推到30分鐘。 |
更多資源請參考:
Windows Phone 的推送通知服務(wù)響應(yīng)代碼
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

