【问题标题】:Message to a client from the server从服务器到客户端的消息
【发布时间】:2009-09-24 10:47:43
【问题描述】:

我必须设计一个在运行 Ruby on Rails 的网站上模拟的 客户端/服务器 系统,它应该像这样工作:

网页浏览器请求页面,一旦打开,服务器就可以向其推送消息

我知道这“自然”是不可能的,但我正在考虑一种在该页面上运行的“java 小程序”,它在端口上侦听要由托管服务器发送的消息。这应该通过打开一种套接字来完成,该套接字侦听服务器可以连接的某个端口以发送其消息。

这可以吗?我是否必须开发一个 java 服务器线程,或者我可以简单地通过它的 IP 地址和端口来寻址客户端小程序并使用来自服务器的任何 Web 服务连接?

谢谢, 卢卡

【问题讨论】:

    标签: java ruby-on-rails applet push server-push


    【解决方案1】:

    彗星绝对是你想要的。根据您的需要,您可以托管自己的 Comet 服务器,或使用 SaaS 解决方案,例如 WebSync On-Demand(免责声明:我在那里工作)。使用 SaaS 的东西,您无需实际运行自己的 Comet 服务器即可获得服务器推送功能。

    【讨论】:

      【解决方案2】:

      最简单的方法是使用 Javascript 来模拟推送机制。在大多数情况下,使用 AJAX 定期轮询就足够了。也可以看看Comet

      【讨论】:

        【解决方案3】:

        使用 java 小程序的另一种方法是结合使用 javascript 和称为Comet 的方法。简而言之,Comet 是一种通过 HTTP 启用服务器推送的方法。我并不是真正的 ruby​​ on rails 人,但在 google 上快速搜索 ruby​​ on rails 和 comet 会收集到相当多的有用信息。

        【讨论】:

          【解决方案4】:

          你看过juggernaut

          【讨论】:

            【解决方案5】:

            如果你想走小程序路线,你需要从小程序连接到提供网页的同一台服务器。小程序听不到。一旦建立 TCP 连接,它就是一个 2-way 通道,只要您的协议允许,您可以拉或推。这就是大多数基于 Applet 的聊天客户端的做法。

            越来越多的人只是在 Javascript 中使用长轮询。运行一个可靠的长轮询系统非常复杂,我建议你使用一个框架。例如,

            http://cometdproject.dojotoolkit.org/

            【讨论】:

              猜你喜欢
              • 2017-06-15
              • 2012-12-05
              • 2017-09-15
              • 1970-01-01
              • 2013-04-01
              • 1970-01-01
              • 2014-09-08
              • 2017-01-12
              相关资源
              最近更新 更多