2012-07-09 45 views
0

目前我们有一个Applet,它通过FTP,套接字和HTTP消息与我们的硬件和服务器进行交互。我被问及是否可以放下applet,然后使用显示动态网页和JavaScript的浏览器。我不相信这是可能的,因为我的理解是,浏览器只能显示对它发起的请求的响应,而我们的应用程序需要显示它从硬件获得的数据,而硬件仅在其传感器被触发时发送。将数据推送到客户端浏览器的Web应用程序

我想过使用AJAX来定期轮询硬件,但我相信同一个原点安全限制会阻止我轮询不同地址的硬件设备。我可以通过让各种硬件设备将所有更新发送到服务器来解决这个问题,但这会对我们当前配置的方式进行重大改变。还有一个性能问题 - 它是一个具有数百台设备的国家应用,每天产生数百万个事件。我必须能够在3秒内做出响应,所以我必须非常频繁地轮询硬件(1秒或更少)以保持这种性能水平。

那么我对web应用程序的理解是否正确?

是有办法的浏览器中显示的信息多个地址来

+0

相关:[我怎样才能实现一个实时仪表板?](http://stackoverflow.com/q/6935016/102937) – 2012-07-09 18:10:09

回答

1

这是可能的。首先你是对的,浏览器不能使用AJAX直接连接到其他服务器。如果这些其他服务器实际上是一些硬件设备,我会称这是一个优势。您需要一台服务器来接收所有流量。

但是,在现代浏览器和服务器中,您可以使用,和其他技术将数据从服务器推送到客户端。基本上,你在客户端保持一个开放的HTTP连接,并且每当服务器有一些数据时,它立即发送它,没有任何延迟。与每隔几秒轮询一次相比,这是一项重大改进 - 您可以避免系统上的延迟和额外负载。

在Java的土地上你有来营救。

+0

谢谢 - 一个问题:我的客户可以有一个单一的网页与多个HTTP连接开放 - 每个服务器或设备一个?然后,JavaScript将收集数据并呈现单个网页供查看和进行交互。 – BigMac66 2012-07-10 15:03:19

+1

@ BigMac66:并非如此,大多数浏览器将并发HTTP连接的数量限制为2或4.这应该不成问题,例如Atmopshere允许您通过单个通道发送各种类型的事件并在客户端上收听它们 - 从逻辑上说,你有几个“连接”。 – 2012-07-10 15:48:49

+0

托马斯彗星维基你链接到你的答案中提到一个服务器组件。你需要添加一个特殊的服务器或模块来实现一个基于慧星的应用程序吗? – BigMac66 2012-07-11 20:05:46

相关问题