推送服务器实现技术?

Posted

技术标签:

【中文标题】推送服务器实现技术?【英文标题】:Push server implementation technology? 【发布时间】:2011-07-05 07:14:14 【问题描述】:

我正计划开发一个使用推送功能的解决方案。将有一个服务器和移动设备客户端应用程序。

我需要知道如何将消息从服​​务器推送到客户端。那是我的客户端应用程序被动地等待消息来自服务器。

从服务器推送消息背后的技术是什么。

客户端有android、J2me、BB、iphone等形式

【问题讨论】:

这是网页应用还是iPhone应用还是Android应用等? 我们会考虑 Android、J2me、BB、iphone 等不同的客户端。 这个Real-Time Technologies Guide 可能值得一看,它涵盖了 Comet、WebSockets 等内容,还提供了托管服务列表以及您可以自己安装的解决方案。 【参考方案1】:

谷歌搜索“COMET”,你会得到很多链接。一般来说,您需要一个服务器框架,该框架可以驻留请求并在有数据返回时将其提取出来。例如,一个基本的 Java Servlet 将为每个请求保留一个线程,如果您“停放”一个请求(通过等待),该线程将与请求一起暂停。这样一来,等待请求的客户端与服务器中的线程数量一样多,这对于大型应用程序来说是不够的。

因此,至少,您需要一个可以在请求暂停时重用线程的系统。随着推送的再次流行,支持它的框架正在蓬勃发展,因此如果没有更多上下文,很难推荐某个服务器/框架。

话虽如此 :-),在 Play 框架 (http://www.playframework.org/) 中有一个示例聊天应用程序,它使用了“推送”的三种变体。如果有的话,值得仔细阅读代码(假设您了解 Java)以了解各种解决方案。

【讨论】:

【参考方案2】:

看看 html5 网络套接字。这是一种打开 原始 TCP 套接字 套接字的方法,该套接字的工作方式类似于 TCP 套接字 (with some limitations),但通过 HTTP 从浏览器启动,从而实现真正的双向通信。许多现代浏览器都支持它,包括当前的 ios 浏览器。 Android 不支持它,但您可以使用 Flash 像素。编写一个管理套接字并将所有信息来回传递给 javascript 的 Flash 文件非常容易。如果您有兴趣,我想我什至可以为您挖掘一些代码。

【讨论】:

WebSockets 不是原始 TCP 套接字。 WebSocket Flash 后备:github.com/gimite/web-socket-js

以上是关于推送服务器实现技术?的主要内容,如果未能解决你的问题,请参考以下文章

重学Springboot系列之服务器推送技术

使用 socket.io 技术实现消息实时推送

push message (短消息推送) 技术Java怎么实现,有没有大神可以讲解一下

如何用java相关的技术实现一个服务器到手机客户端的一个消息推送?

聊聊推送的架构及关键技术实现

winform上如何实现服务器消息实时推送?