【问题标题】:Server side push with java使用java进行服务器端推送
【发布时间】:2011-12-03 15:59:37
【问题描述】:

有没有比cometd 更简单的方法作为java 的长轮询框架? 因为我需要的是客户端指定一些参数并将它们发送到服务器。 服务器处理它们并开始持续将消息推送回客户端(看起来 像每个服务的线程?)。客户接收消息并显示它们。客户端有可能停止侦听并实际停止服务器的服务以发送消息。可能是我太懒了 但是 cometd 的例子并没有我想要的那么简短和透明。

不基于 HTML5。

【问题讨论】:

  • 也许 www.icepush.org 是您要找的?
  • 回退到 Flash 套接字连接的 WebSockets 在所有浏览器中占了非常大的百分比(假设连接到您的服务器的客户端是 Web 浏览器)。我强烈建议您阅读this SO answer on WebSocket readiness。如果您不想安装和托管自己的实时解决方案(Comet 或 WebSockets),那么您可能需要考虑hosted solution

标签: java server-push


【解决方案1】:

使用SSE(服务器发送事件),您可以完全按照您解释的方式进行操作,但不幸的是它是 HTML5 技术。
如果您有兴趣,可以查看 html5rocks 了解更多信息。

【讨论】:

  • 谢谢你的回复,我会一定这样做,到时候IE会正常支持HTML5,HTML5会是标准的。
【解决方案2】:

如果您对 Cometd 或反向 AJAX 太懒惰,您可以将 Web 服务端点部署到您的客户端(最好是 restful 而不是 SOAP)并让您的服务器将消息发送回您的 Web 服务(充当客户端)。

实现这一点很简单。

在您的客户端对服务器的初始请求中,连同其他参数,您还可以发送端点正在侦听通知的端口(或 URL)。

然后你只需要定义通知事件并实现其余的逻辑。

【讨论】:

  • 感谢您的回复。我对 REST 不熟悉 - 但我明白了,我需要 :) 所以,如果我要使用 cometd - 那么,可能会从 REST 开始。是提供上述功能的特定框架吗?
  • 现在 cometd 看起来有点困难,但功能强大。所以我继续挖掘。如果它会成功 - 我会把我的结果放在这里。
  • 好的。不要做 REST。在你的客户端打开一个服务器套接字并获取消息
【解决方案3】:

当浏览器和/或服务器部件不支持 websockets 时,这些家伙 Atmosphere Asynchronous WebSocket/Comet Framework 在简化 服务器推送 过程方面做得很好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    相关资源
    最近更新 更多