2013-02-28 65 views
2

我有一个Web服务器,当服务器检测到数据库发生变化时,我想将数据发送到客户端。我希望客户端在没有轮询的情况下接收数据。java脚本服务器异步事件

达到此目的的最佳方法是什么?

(我读了一些关于SSE - 服务器发送的事件,但不知道这是要走的路)

感谢

+0

要检测数据库中的更改,必须有一个轮询例程。 – 2013-02-28 06:27:32

+0

数据库更改是在服务器上,我想避免客户端投票服务器 – 2013-02-28 06:28:15

+0

你只提到javascript和jquery,你能告诉我们你正在使用什么数据库和你的前端是什么? – 2013-02-28 06:32:27

回答

0

如果投票是不是一种选择,你可以考虑一下了更好的技术, WebSockets,如果你的服务器支持它(和你的目标浏览器!)。 不管怎样,你需要一个由客户端连接到服务器的连接。

+0

为什么WebSockets比SSE更好? – 2013-02-28 06:28:54

+0

我说它比传统的轮询技术(恕我直言)好,不比SSE。 WS和SSE都擅长他们的工作,阅读更多内容:http://stackoverflow.com/questions/5195452/websockets-vs-server-sent-events-eventsource – Greg 2013-02-28 06:56:28

0

答案会根据客户端Javascript的自由而变化。

如果您的应用程序为您提供了完全的自由,您甚至可以将您的客户端设置为JMS侦听器,并将JMS消息从客户端传送到服务器。例如,您可以使用Apache Ajax

另一种方法是设置Web客户端是Redis的客户使用,为前,Webdis

正如你所提到的,服务器发送的事件是一个选项了,所以是的WebSockets。 你需要根据你的约束来选择。

1

是的,服务器发送事件是适用于侦听服务器上的更改的技术。

如果您只是在监听,那么SSE比双向WebSocket更好(更快,轻量级,HTTP兼容)。