2016-04-18 114 views
0

我正在開發即時消息應用程序。我將使用SignalR將消息推送到客戶端。我應該如何處理離線設備以獲取最新消息?我有兩個解決方案:離線即時消息

  1. 當服務器想要發送消息到設備,它不關心設備是否聯機。它只是用SignalR發送數據,所以如果設備處於脫機狀態,用戶不會收到消息。當設備再次聯機時,它會將設備SQLite中記錄的最新ID發送到服務器。然後服務器發送ID大於客戶端的消息。

  2. 當服務器想要將消息發送到設備時,它首先檢查設備是聯機還是脫機。如果它在線,它使用SignalR發送消息。如果設備處於脫機狀態,則會發送推送通知 - 使用適用於Android的GCM或適用於iOS的APNS - 通過設備進行發送。然後,當設備在線時,它會檢查推送通知並更新SQLite中的消息。

哪種解決方案更好?

+0

@ Biffen-感謝您的編輯。 –

回答

0

老實說,這取決於你的需求。您的客戶是否希望在不使用應用程序時收到通知?我預計大多數通用即時消息應用程序(例如Skype和朋友)都會這樣做。

或者,用戶可能更喜歡當他們沒有運行應用程序時得不到通知。我個人建議你先做更簡單的選擇 - 只是選項1-,如果需要的話只添加通知。 PushSharp對於這類事情來說是一個很好的工具。