在Java中使用http的全双工Servlet?

时间:2012-11-22 20:45:53

标签: java http java-ee servlets

是否可以编写一个servlet,它既可以让客户端连续发送数据,又可以按照它认为合适的方式回答这个问题?

我试过了,但遇到了以下问题:

  • 请求在发送CR / LF时仅通过servlet输入流接收的位置
  • 仅在指定内容长度(我事先不知道)时才有效
  • 响应仅在请求完成后发送给客户端(我希望两个流都独立运行);注意:我对我的线程代码充满信心

有可能吗?

1 个答案:

答案 0 :(得分:0)

  

是否可以编写一个servlet,它既可以让客户端连续发送数据,又可以按照它认为合适的方式回答这个问题?

[更新]

也许你正在寻找像WebSocket这样的东西(我还没有用过,所以我不会那么多帮助。)

我目前正在坚持使用彗星方法来解决类似的问题 - 这个想法是你在某个地方有一个传出消息的队列,并且在它们变得可用时进行长时间的轮询以读取这些消息。它避免了您遇到的一些问题,例如,事先知道Content-Length,因为在您拥有某种类型的特定于应用程序的完整消息之前,您不会尝试提取信息。

[原始]

是。流行语是comet。快速谷歌java comet返回了以下文章的链接,可能有所帮助:http://www.ibm.com/developerworks/web/library/wa-cometjava/