2016-09-06 72 views
0

我們計劃實施通過ANH推出iOS和Android的服務器端通知機制。我們的移動客戶端沒有代碼佔用空間,缺少對我們的服務器API進行「註冊」的調用。這樣我們的方法看起來類似於這個MSDN discussionAzure通知中心API - DirectSend/DirectBatchSend與註冊/通知/標籤樣式的優勢

我還看到了備選方法,更多bare-bones,方法在MSDN上註明。

這是否公平地斷定這兩種方法在「發送」方面會有類似的表現?

它出現的主要區別是:

  • 前一種方法已經做與工作和異步機制整合,呈現的是採取更多的REST風格的API層的可調用C#的工作機制,
  • DirectBatch/Send API就是這樣 - 您認爲合適的原始RESTful API。

回答

1

對於既可作爲REST API又可作爲SDK使用的操作,您不應在客戶端看到任何顯着的性能差異,因爲SDK僅僅是REST API的包裝。對於iOSAndroid都有SDK,建議使用這些SDK,以便不必重新編寫包裝。

直接發送目前僅適用於.NET SDK以及其他平臺作爲REST API,因此如果您使用的是.NET以外的其他平臺進行操作,則必須實施自己的包裝。你可以use the sample在這個過程中幫助你。

在性能方面,它取決於你的意思。

  • 由於ANH服務無需在流程中進行任何註冊,它只是通過您的參數發送通知,所以直接發送很可能會以更快的速度交付給客戶。但它在你可以提供的句柄數量方面有限制,並且你還需要自己管理句柄。
  • 如果您只意味着客戶端的性能,那麼應該沒有區別,因爲所有調用都是異步的。如果您利用標籤,那麼您可以在一次服務器調用中進行非常棘手的發送,並讓ANH找出背後的細節。

但是不知道您的情況和要求,沒有辦法給出適當的建議。

+0

謝謝@NikitaG ..證實了我的想法。我通常在ANH中注意到的一件事,包括直接發送API,沒有HTTP 410結果 - 如果PNS設備句柄不再存在(例如,用戶從設備上卸載了應用程序)會怎麼樣? ANH是否檢測到該情況或將特定結果傳播回DirectSend調用方? –

+0

@霍華德霍夫曼,你可以[檢索PNS錯誤細節](https://azure.microsoft.com/en-us/blog/retrieve-platform-notification-system-error-details-with-azure-notification-hubs/) 。我還更新了有關.NET SDK的直接發送可用性的信息的原始答案。 –