2014-01-07 62 views
1

的預期和策略時,調用clientBootstrap.connect(主機,端口),如果我有很多,可以到該主機/端口建立通道之前提出的請求(即 - 如果我打電話channel.write(消息))在這個通道之前,它是否連接,那麼是否預期:的Netty 4 - 什麼是連接出和排隊的消息

1)Netty 4會在內部排隊這條消息,並且我只需在它連接後調用flush即可?我有這樣的期望,但不爲我工作,所以想確認。如果這是我的期望,我可以分享一些代碼。

OR

2)是,我需要跟蹤連接狀態和排隊這些消息我自己,只調用的WriteMessage()我一旦我知道連接建立的期望。

3)其他策略?

預先感謝您。

回答

1

連接前無法調用寫入。如果你這樣做,ChannelFuture將失敗,併發生NotYetConnectedException。

+0

謝謝諾曼。我確認這正是我所看到的,所以我會在我的層面處理這種情況。 –

0

的行爲是不一樣的基於我的代碼的理解4.1.0.Beta5上面的回答。寫入方法不會檢查通道現在是否處於活動狀態,並且檢查將移至flush方法。但是,在通道註冊之前,我們仍然無法寫入,因爲您的處理程序可能尚未添加到管道中。

我不知道爲什麼網狀必須是這樣,也許可以網狀只是建立在build()方法的管道連接之前。所以用戶可以使用netty的內部隊列,不需要創建另一個隊列。