2014-03-05 84 views
0

我有一個客戶端應用程序(WP8)和一個Web API。該應用程序可以通過Web API將消息發送給其他用戶(通常是一個其他用戶,有時是一些用戶)。這是通過一個簡單的「AppMessage」類來完成的,該類通過發佈到Web API保存。使用Web API推送服務器

我想使這個更快的過程。目前,用戶只有在登錄(通過Web API進行身份驗證)時纔會收到消息通知,或者當他們單擊應用程序中的刷新按鈕時 - 客戶端會轉到此處並檢查更多消息。

SignalR似乎適合在這裏。當連接客戶端未連接時發送給他們的消息是否可以通知連接客戶端?我需要將SignalR連接映射到數據庫中的用戶記錄,並檢索發送給它們的已保存消息。

我理解它用於實時通信,但不是它如何處理保存連接時發送給客戶端的消息(或信號)。

感謝您對此的任何方向!

+1

我認爲更適合可能是Azure通知中心:http://www.windowsazure.com/en-us/services/notification-hubs/ –

+0

這看起來像我正在尋找的!謝謝 – creatiive

回答

1

例如,如果消息存儲在數據庫中,則可以在客戶端連接時檢查它們(請參閱OnConnected方法)並將它們發送給客戶端。

SignalR本身並沒有爲脫機用戶或連接實現存儲,所以你需要自己實現。 基本上你需要檢查用戶是否在線,然後直接發送消息或將它存儲在某個地方。您可以讓客戶發送收據以確保您的郵件實際上已被顯示。 檢查this瞭解如何將用戶與SignalR連接相關聯。

也就是說,如果您使用的是Azure,我還建議仔細查看Brendan的建議。