2011-02-04 61 views
0

我是一名經驗豐富的C/C++應用程序編程,但相對較新的Web編程,REST等RESTful服務 - 的問題

有用於監視各種其他客戶機的中央服務器。服務器公開了一些API,客戶端機器通過這些API週期性地向服務器發送其他事情的狀態更新&。儘管客戶端始終與服務器連接,但服務器還通過對POST方法的響應向客戶端發送命令,客戶端方法對其執行操作。

現在如果服務器本身主動想要發送一些消息給客戶端,這是否可能 - 即客戶端每小時連接一次,但在中間服務器需要請求客戶端聯繫它 - 這是可能的在所有?

如果不是,那麼只有這樣才能擁有一些帶外數據 - 即讓客戶端還運行一個單獨的進程在單獨的端口上監聽。任何時候,服務器都想要聯繫客戶端,服務器會向該端口上的特定客戶端發送一些消息,要求客戶端聯繫服務器?

回答

0

有兩種方法可以做到這一點,具體取決於您的具體情況。如果您的網絡允許從服務器到客戶端的連接,則可以在客戶端上公開最小的Web服務器或類似RPC的接口,並通過服務器連接到該服務器。如果這是不可能的,例如因爲你的客戶端在防火牆或NAT網關之後,客戶端將需要輪詢服務器以查看是否有任何命令在等待。