2011-06-13 46 views
2

場景:用戶登錄客戶端軟件,該客戶端軟件與將處理用戶指定任務的服務器端實體(服務器)形成持久雙向連接。當服務器端實體在處理用戶任務時遇到錯誤或需要進一步的用戶輸入時,它會通知客戶端軟件,並等待客戶端決定要做什麼。客戶端軟件將採用新的用戶特定輸入並將其發送到服務器端。服務器端將繼續使用新的用戶指定的輸入停止上次停止的位置。該反饋週期將持續到完成處理。逐步更新的用戶輸入將全部存儲在服務器端,並可從客戶端軟件訪問和修改。因此,如果客戶端刪除了特定的輸入,則該更改將立即反映在服務器端。在服務器端,可能需要額外的接口將不同用戶的客戶端路由到可用的硬件節點(雲),以支持在服務器端運行的併發多用戶任務。在Java中爲客戶端/服務器端雙向通信反饋系統構建服務器?

在客戶端,我懷疑使用套接字連接到服務器...

現在的服務器,我有點失落,因爲似乎有許多不同的Java服務器,比如碼頭& Netty的。我也謹慎行事,以免在這裏嘗試重新發明任何車輪。

建立服務器是否正確?或者構建一個web服務來完成需求的特定任務?

我也不只是尋找一種適合所有人的解決方案(可能是一廂情願),但對我目前的狀況有任何見解。

回答

1

Netty將提供很多它聽起來像你需要的東西,而無需重新創建套接字服務器。也就是說,我會確保您實際上需要客戶端和服務器之間的雙向實時通信。如果您可以重新修復問題,以便客戶端 - 服務器通信不需要實時,那麼RESTful Web服務等事情就成爲可能,並且(以我的經驗)不太複雜且容易出錯。