来自 Java 服务器的持久 http 连接

Posted

技术标签:

【中文标题】来自 Java 服务器的持久 http 连接【英文标题】:Persistent http connection from Java server 【发布时间】:2011-04-07 16:34:59 【问题描述】:

我想在 Java Spring 服务器和 android 客户端之间创建一个持久连接。

我需要的是一种具有持久(长期 HTTP)连接的推送机制,一旦可用,它会将所有信息从服务器流式传输到客户端。

是否有任何可用的框架支持这一点,最好是 Java Spring。将帮助我实现这一点的教程或文档。

【问题讨论】:

你会得到的最好的东西是类似于彗星/长轮询/反向 ajax 的东西,带有一个保持连接的连接,它使底层 TCP 连接在请求之间保持活动状态。 HTTP 中没有“连接”。 这有点不真实,因为打开对分块数据的请求会创建一个持久连接 我需要创建一个 RESTful 服务器和一个 Android 客户端(不是 Web 客户端,而是 Android 原生应用程序),它们将连接到该服务器并等待响应,因此 html/Ajax 不适合我。如果我理解 comet 仅适用于网络解决方案,对吗? Comet 更像是一种实现您所要求的通信模式的技术。而这并不是那么“安宁”。 【参考方案1】:

您可以开始here 了解实现此目的的一般方法。

一些示例技术是:

Google App Engine Channel API HTML5 Websockets Blaze DS

【讨论】:

【参考方案2】:

在“推送”方面,长寿命 HTTP 连接和 WebSockets 通常更适合 Web 应用程序。

如果您不介意在服务器端进行一些工作,那么持久套接字绝对是最省电的方式。

这是一个好的开始:http://devtcg.blogspot.com/2009/01/push-services-implementing-persistent.html

【讨论】:

以上是关于来自 Java 服务器的持久 http 连接的主要内容,如果未能解决你的问题,请参考以下文章

C套接字HTTP 1.1持久连接服务器何时应关闭套接字?

LVS负载均衡之session解决方案 持久连接

LVS 持久连接

LVS 持久连接

【小白学爬虫笔记】持久连接、非持久连接

http协议版本和java返回值讨论