我需要編寫一個Java客戶端應用程序,該應用程序需要與發送事件(xml消息)的服務器建立TCP連接。在從服務器接收事件之前,客戶端也將發送一個xml消息來在服務器上創建一個通道,並且服務器將發回一個響應。然後客戶端在收到事件消息時,必須處理它們並通過相同的TCP連接使用xml響應消息進行響應。服務器是一個遺留應用程序,我無法控制它。
服務器還會發送運行狀況檢查消息,以評估客戶端創建的通道(客戶端必須響應該通道)以保持通道活着。
我對Java中的NIO/Socket/TCP編程沒有經驗,所以想知道什麼是實現這個客戶端的簡單而優雅的方式。
我與春天有體面的經驗和/想知道如果我可以使用Spring線了像(1)一個TCP連接網關/適配器某些組件將負責爲開幕監視連接狀態(2)編組器/ Unmarshaller的將消息從XML轉換爲Java,反之亦然;(3)消息接收方和發送方實際上接收/偵聽消息併發送響應。通過TCP連接異步事件(xml消息)驅動的Java客戶端
有一點要記住的是,會有噸服務器發送的事件消息和客戶端必須很快處理,並立即做出迴應。所以消息處理不能順序發生。
任何建議或指向庫或示例代碼是高度讚賞。
謝謝。
謝謝你的迴應,彼得。我同意Spring有時會重載解決方案,但我發現它在佈線和抽象細節方面非常方便,更重要的是,採用一致的方法來解決許多問題。回到我的問題,我也想寫我自己的東西。我將檢查STaX事件解析器和Javolution XML解析器。 – user2452768