一個通訊鏈路中有三個應用,A,B,C;A只作為客戶端,B既為A的服務端,又作為C的客戶端,而C為B的服務端;

通訊鏈路為A—B—C,C的返回信息經B處理後再返回給A。

netty小白諮詢如何使用netty實現,謝謝各位大神。


可不可以在B的Handler的channelRead裡面起一個客戶端,就跟A差不多,然後讓這個客戶端去訪問C,返回的數據放在Bytebuf裏,這個Bytebuf是B的Handler裏定義的,可以同過set方法設置值。但是這樣A每次請求B的時候,B調用channelRead就會再起一個客戶端連接C,就算每次連接C返回數據後關閉,感覺效率也不高。我也是netty小白,以上都是瞎猜的。


寫兩個netty


寫一個netty server,寫一個netty client,在一個進程中不就行了


這種代理需要開兩個socket


B作為AC的服務端即可

首先AC都連接B,B保存AC的連接

A發送消息給B,B處理後發送給C

C返回消息給B,B處理後返回給A

關鍵技術點在於連接的時候保存2條連接為長連接即可實現三方通信


你的B應用寫兩個netty就好啦,一個用來做服務端接收,另一個做客戶端。互不幹擾


推薦閱讀:
相關文章