2014-03-31 47 views
2

我想實現一個學校項目的n層架構應用程序。 客戶端與服務器之間的通信使用RESTful Web服務完成。 我使用澤西島來執行此Java。我唯一的問題是,如何註冊客戶端在服務器接收變化的通知(如通常與觀察者模式或聽/發佈模式)。我是否還需要在客戶端實施服務,然後註冊由服務器調用的URL,然後在發生更改時調用這些URL?REST風格的Web服務與澤西島Java和觀察者模式

感謝您的幫助!

回答

3

通常,在基於http的客戶端服務器方案中,服務器始終響應請求。沒有客戶端請求,服務器不能發送任何東西(通知)。但有服務器將數據推送到客戶端的用例沒有客戶端請求,因此Server-Push出現了。

澤西島Server-Sent Events (SSE)的形式提供服務器推送。該文件說,

服務器發送的事件(SSE)是一種機制,允許服務器 一旦 客戶端 - 服務器連接是由客戶端建立從服務器異步推數據到客戶端

請注意客戶端需要建立與服務器第一個的連接。您可以將第一個客戶端請求稱爲註冊。連接建立後,服務器可以發送/推送數據給客戶端。鏈接的提及也有工作示例