<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 總覽 我們已經知道,ChannelHandler 實現可以串聯在一起,以構建ChannelPipeline 的處理邏輯。我們先前解釋說,這個設計方法支持潛在的復雜的分解處理成小和可重用的組件,其中每個一個定義良好的處理任務或步驟。在這一章里,我們將展示它簡化了測試。 Netty 的促進 ChannelHandler 的測試通過的所謂“嵌入式”傳輸。這是由一個特殊 Channel 實現,EmbeddedChannel,它提供了一個簡單的方法通過管道傳遞事件。 想法很簡單:你入站或出站數據寫入一個E mbeddedChannel 然后檢查是否達到 ChannelPipeline 的結束。這樣你可以確定消息編碼或解碼和ChannelHandler 是否操作被觸發。 在表10.1中列出了相關方法。 | 名稱 | 職責 | |-----|-----| | writeInbound | 寫一個入站消息到 EmbeddedChannel。 如果數據能從 EmbeddedChannel 通過 readInbound() 讀到,則返回 true | | readInbound | 從 EmbeddedChannel 讀到入站消息。任何返回遍歷整個ChannelPipeline。如果讀取還沒有準備,則此方法返回 null | | writeOutbound | 寫一個出站消息到 EmbeddedChannel。 如果數據能從 EmbeddedChannel 通過 readOutbound() 讀到,則返回 true | | readOutbound | 從 EmbeddedChannel 讀到出站消息。任何返回遍歷整個ChannelPipeline。如果讀取還沒有準備,則此方法返回 null | | Finish | 如果從入站或者出站中能讀到數據,標記 EmbeddedChannel 完成并且返回。這同時會調用 EmbeddedChannel 的關閉方法 | *測試入站和出站數據* *處理入站數據由 ChannelInboundHandler 處理并且表示數據從遠端讀取。出站數據由 ChannelOutboundHandler 處理并且表示數據寫入遠端。根據 ChannelHandler 測試你會選擇 writeInbound(),writeOutbound(), 或者兩者都有。* 圖10.1顯示了數據流如何通過 ChannelPipeline 使用 EmbeddedChannel 的方法。 ![](https://box.kancloud.cn/2015-08-18_55d312929bd0d.jpg) Figure 10.1 EmbeddedChannel data flow 如上圖所示,使用 writeOutbound() 寫消息到 Channel,消息在出站方法通過 ChannelPipeline,之后就可以使用 readOutbound() 讀取消息。著同樣使用與入站,使用 writeInbound() 和 readInbound()。處在 每種情況下,消息是通過 ChannelPipeline 并被有關ChannelInboundHandler 或 ChannelOutboundHandler 進行處理。如果消息是不消耗您可以使用 readInbound() 或 readOutbound() 適當的讀到 Channel 處理后的消息。 讓我們仔細看一下這兩個場景,看看他們如何適用于測試您的應用程序邏輯。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看