2012-07-19 67 views
0

我試圖讓100個Android設備顯示基於服務器參數的文本字符串。當服務器將文本從「Hello World」更改爲「Everything Changed」時,我希望所有100個Android設備同時進行更新,並且在發生更改時立即進行更新。Android沒有C2DM的Web服務的實時更新?

它運行在一個隔離的局域網上,因此C2DM不可行,並且每秒輪詢似乎相當的流量(特別是如果有1000個設備以後)。對於如何從輪詢轉向推動或至少使這種可擴展性有什麼建議?

我一直在考慮只保持連接打開,並且服務器只在它發生變化時才返回內容,但是擔心超時問題和PHP處理100個併發連接的能力......任何指針或建議嘗試?

回答

1

你不應該拉。如果您處於專用網絡中,並且設備數量有限,則最好保持tcp套接字打開,並通過打開的套接字將數據從服務器發送到客戶端。

但是你必須明白你在做什麼。

因此,閱讀以下內容:

1)瞭解多少個連接可以打開和是否足夠滿足您的需求 How many socket connections possible?

2)如果你有很多的設備,我的意思是超過千元,您可能在服務器端失敗。要不失敗,您必須閱讀有關異步io http://en.wikipedia.org/wiki/Asynchronous_I/O和其他一些在網絡中找到。 和php中的async io Can PHP asynchronously use sockets?