2011-07-05 141 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,更新了我的答案。 –