通过HTTP和TCP / IP的观察者模式(服务器-客户端)


9

我有一台服务器和许多客户端(大约50个客户端),它们基于Web应用程序连接到该服务器,该Web应用程序当然基于HTTP协议,而HTTP协议又使用TCP / IP(如果我输入错了,请纠正我,原因是我并不是很擅长联网)。

问题是,我应该开发一种警报机制,其中,当有人提交带有危险值的表单时,经理(也通过同一Web应用程序连接的经理)应该在他的屏幕上收到警报弹出窗口,几乎是真实的时间(即时)。

但是,由于HTTP协议是无状态的,所以我有点不解。我不知道该如何实施。

解决方案之一可能是将JavaScript与setInterval()函数一起使用,以每秒从服务器提取数据。但这对我来说有点脏,而且不专业。

你们有实现另一种解决方案的想法吗?



什么样的客户?瘦客户端(基于浏览器的客户端)还是重客户端?
ysdx

@ysdx,想想客户。仅具有浏览器支持的客户端。
Saeed Neamati 2011年

Answers:


4

您应该使用某种Ajax推送(请参阅Comet)来通知客户端。它可以消除轮询的需要,基本上可以保持已建立的连接处于打开状态,该连接可用于将发生的事件通知浏览器。但是,这不适用于所有浏览器。在这种情况下,您将退回到“长时间轮询”。


6

我认为这是创建WebSocket的原因。如果您不需要与旧版浏览器兼容,则可以使用它而不是轮询。无论如何,您可能应该使用轮询作为后备。

我不确定这些天的规格/实施情况是否稳定(不久前还不太稳定)。似乎最新规范已在Firefox 6和Chromium 14中实现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.