2012-08-01 59 views
1

我的服務器是一個REST平臺(使用asp.net MVC 4 web api構建),而我的客戶端是ios應用程序(當然是objective-c)。 當前對於所有操作,客戶端使用http POST,GET,PUT,DELETE查詢服務器。 但有一種情況,服務器需要通知客戶發生了什麼事情。在ios應用程序中監聽asp.net mvc-4服務器

Apple的方式是推送通知,當用戶爲應用程序授權推送通知時,這是確定的,但即使用戶關閉推送通知,我也需要通知應用程序(當它位於前臺時)。

現在有2種方式,它可以做到:

  1. 客戶查詢每兩秒鐘的服務器(在HTTP GET)萬一發生什麼事(我們到了我們到了?: )
  2. 客戶端以某種方式打開服務器的套接字並將其保持打開狀態,等待服務器通過打開的會話通知它發生了某些事情。

那麼你建議做什麼? 1或2?還是有第三種方式? 如果選項2有人可以讓我知道如何有效地做到這一點?考慮到我的應用程序應該可以處理100,000個活動用戶?

謝謝

回答

0

看一看SignalR。這是微軟的實時圖書館,但有人爲它寫了iOS client library

+0

你能詳細說明一下嗎?按照您在這裏建議的方式進行操作意味着我需要在服務器上安裝SignalR微軟庫,並在客戶端上安裝iOS客戶端庫,並使用signalR API在ios客戶端和C#服務器之間建立持久連接? – ozba 2012-08-01 20:39:27

+0

另外我看到它主要用於廣播到一個組,而我需要發送給特定用戶。這對於這項任務也是有效的嗎? – ozba 2012-08-01 20:55:48

+0

您需要擁有一臺託管SignalR「集線器」的服務器,但其想法是客戶端向集線器註冊,並打開一個持久連接。發生事件的系統會使用事件詳細信息向集線器發送消息。集線器然後實時向客戶端設備發送更新。這一切都非常酷,但確實需要某個地方來主辦樞紐。 – starskythehutch 2012-08-01 20:56:01

相關問題