2017-06-14 56 views
0

推我必須建立一個TCP客戶端如何使TCP客戶端,發送請求和接收響應。也接受郵件服務器從

1)哪位會要求味精發送到服務器並接收響應它

2) - 有些時候服務器將msg發送給客戶端,沒有客戶端請求,所以客戶端應該接受並閱讀它。

所以我已經問了它的一部分My tcp client using spring integration not able to get response 並試圖達成一些解決方案。但對於第二部分我很困惑什麼使用tcpoutbound網關或入站網關與客戶端標誌啓用。 請提出任何示例或confiuration來讀取服務器推送的消息。

P.s我是新來的SI

回答

0

您不能使用網關;它們適用於簡單的請求/回覆場景。

對於同級之間的任意消息傳遞,請參閱Collaborating Channel Adapters部分。

要實現高容量吞吐量(避免上述使用網關的缺陷),您可以考慮配置一對協作的出站和入站通道適配器。協作適配器也可以用於完全異步通信(而不是請求/回覆語義)(服務器端或客戶端)。在服務器端,消息關聯由適配器自動處理,因爲入站適配器添加了一個頭,允許出站適配器確定使用哪個連接發送回覆消息。

在服務器端,必須注意填充ip_connectionId標題,因爲它用於將消息關聯到連接。來自入站適配器的消息將自動設置標題。如果你想構建其他消息發送,你需要設置標題。標題值可以從傳入的消息中捕獲。

在客戶端,如果需要,應用程序必須提供自己的關聯邏輯。這可以通過多種方式完成。 ...

+0

Garry我的情況是,當我的tcp cleint發送請求消息它必須等待服務器端的響應。但有時服務器發佈消息來告訴它是活着的。所以我得到的錯誤不能將消息與任何待處理的答覆關聯起來。那麼我應該如何處理最後的情況。我是否仍然需要使用協作通道適配器。另外,我不知道服務器是否使用Spring集成 – UchihaObito

+0

我的服務器還維護了請求和響應的會話,所以我無法啓動新連接或關閉新請求的連接。 – UchihaObito

+0

服務器使用什麼並不重要。在這種情況下出站網關不能使用;您需要使用協作通道適配器,並在您的客戶端有一些代碼來處理等待答覆和響應服務器ping。 –

相關問題