我有一個Web服務器,當服務器檢測到數據庫發生變化時,我想將數據發送到客戶端。我希望客戶端在沒有輪詢的情況下接收數據。java腳本服務器異步事件
達到此目的的最佳方法是什麼?
(我讀了一些關於SSE - 服務器發送的事件,但不知道這是要走的路)
感謝
我有一個Web服務器,當服務器檢測到數據庫發生變化時,我想將數據發送到客戶端。我希望客戶端在沒有輪詢的情況下接收數據。java腳本服務器異步事件
達到此目的的最佳方法是什麼?
(我讀了一些關於SSE - 服務器發送的事件,但不知道這是要走的路)
感謝
如果投票是不是一種選擇,你可以考慮一下了更好的技術, WebSockets,如果你的服務器支持它(和你的目標瀏覽器!)。 不管怎樣,你需要一個由客戶端連接到服務器的連接。
爲什麼WebSockets比SSE更好? – 2013-02-28 06:28:54
我說它比傳統的輪詢技術(恕我直言)好,不比SSE。 WS和SSE都擅長他們的工作,閱讀更多內容:http://stackoverflow.com/questions/5195452/websockets-vs-server-sent-events-eventsource – Greg 2013-02-28 06:56:28
答案會根據客戶端Javascript的自由而變化。
如果您的應用程序爲您提供了完全的自由,您甚至可以將您的客戶端設置爲JMS偵聽器,並將JMS消息從客戶端傳送到服務器。例如,您可以使用Apache Ajax。
另一種方法是設置Web客戶端是Redis的客戶使用,爲前,Webdis
正如你所提到的,服務器發送的事件是一個選項了,所以是的WebSockets。 你需要根據你的約束來選擇。
是的,服務器發送事件是適用於偵聽服務器上的更改的技術。
如果您只是在監聽,那麼SSE比雙向WebSocket更好(更快,輕量級,HTTP兼容)。
要檢測數據庫中的更改,必須有一個輪詢例程。 – 2013-02-28 06:27:32
數據庫更改是在服務器上,我想避免客戶端投票服務器 – 2013-02-28 06:28:15
你只提到javascript和jquery,你能告訴我們你正在使用什麼數據庫和你的前端是什麼? – 2013-02-28 06:32:27