2011-07-05 158 views
1

我打算開發一個使用推送功能的解決方案。將會有一個服務器和移動設備客戶端應用程序。推送服務器實現技術?

我需要知道如何將消息從服​​務器推送到客戶端。這是我的客戶端應用程序被動等待,直到消息來自服務器。

推送來自服務器的消息背後的技術是什麼。

客戶是Android中,J2ME,BB,iphone等

+0

這是一個Web應用程序或Iphone應用程序或Android應用程序等? –

+0

我們會考慮Android,J2me,BB,iphone等不同的客戶端 –

+0

大概值得看看這個[Real-Time Technologies Guide](http://www.leggetter.co.uk/real-time-technologies它涵蓋了諸如Comet,WebSockets之類的東西,並且還提供了託管服務列表以及您可以自行安裝的解決方案。 – leggetter

回答

2

谷歌爲「彗星」的形式,你會得到大量的鏈接。一般來說,您需要一個服務器框架,可以將請求放置並在數據返回時提取它們。例如,一個基本的Java Servlet會爲每個請求保留一個線程,並且如果你「停留」了一個請求(通過做一些等待),該線程會隨請求一起暫停。通過這種方式,只能有儘可能多的客戶端等待請求,因爲您可以在服務器中有線程,這對於大型應用程序來說是不夠的。

因此,至少需要一個系統,在請求暫停時可以重新使用線程。隨着推動力再度流行,支持它的框架正在蓬勃發展,所以沒有更多的上下文,很難推薦某個服務器/框架。

話雖如此:-),在Play Framework(http://www.playframework.org/)中有一個示例聊天應用程序,它使用三種「push」變體。如果有的話,值得仔細閱讀代碼(假設你知道Java)來感受各種解決方案。

+0

謝謝cdrgroot,我專注於COMET –

2

看看HTML5網絡套接字。這是一種打開原始TCP套接字套接字的方式,其工作方式類似於TCP套接字(with some limitations),但是通過HTTP從瀏覽器啓動,從而實現真正的雙向通信。它在許多現代瀏覽器中都受支持,包括當前的iOS瀏覽器。 Android不支持它,但在那裏你可以回落到一個Flash像素上。編寫一個管理套接字的Flash文件並將所有信息來回傳遞給Javascript是相當容易的。如果你有興趣,我想我甚至可以爲你挖掘一些代碼。

+0

WebSockets不是原始的TCP套接字。 WebSocket Flash後備:https://github.com/gimite/web-socket-js – igorw

+0

感謝@igorw,更新了我的答案。 –