0

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

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

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

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

谢谢,卢卡

4

5 回答 5

2

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

于 2010-01-10T16:39:45.537 回答
1

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

于 2009-09-24T10:59:04.073 回答
0

你看过剑圣吗

于 2009-09-24T11:39:29.360 回答
0

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

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

http://cometdproject.dojotoolkit.org/

于 2009-09-24T11:47:12.510 回答
0

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

于 2009-09-24T11:00:17.613 回答