標籤:商務邏輯 lis style and 好的 channel 傳遞 ros 興趣
上一篇文章中我講述了關於訊息推送的方案以及一個基於Netty實現的一個簡單的Hello World。為了更好的理解Hello World中的代碼,今天我來解說一下關於Netty中一些概念和工作原理的內容,假設你認為本篇文章有些枯燥。請先去閱讀《Android 基於Netty的訊息推送方案之Hello World(一)》
ChannelEventNetty是基於事件驅動的,就是我們上文提到的。發生什麼事。就通知"有關部門"。
所以。不難理解。我們自己的業務代碼中,一定有跟這些事件相關的處理。在例子代碼,我們處理的事件,就是channelConnected。
以後。我們還會處理很多其它的事件。
ChannelPipeline管道,傳輸途徑。它控制ChannelEvent事件分發和傳遞的。事件在管道中流轉。就是用這個ChannelPipeline處理的。
比方:開發事件。先給A設計。然後給B開發。一個流轉圖。希望能給你更直觀的感覺。
管道流轉圖:
ChannelHandler剛說Pipeline負責把事件分發到對應的網站。網站在Netty裡就是指ChannelHandler。事件到了ChannelHandler這裡,就要被詳細的進行處理了,我們的例子代碼裡,實現的就是這樣一個處理事件的“網站”,也就是說,你自己的商務邏輯一般都是從這裡開始的。
Channelchannel,可以告訴你當前通道的狀態,是連同還是關閉。擷取通道相關的配置資訊。得到Pipeline等。是一些全域的資訊。Channel自然是由ChannelFactory產生的。Channel的實作類別型。決定了你這個通道是同步的還是非同步(nio)。比如,我們例子裡用的是NioServerSocketChannel。
假設你有興趣,請繼續瞭解Netty《Android 基於Netty的訊息推送方案之字串的接收和發送(三)》
Android 基於Netty的訊息推送方案之概念和工作原理(二)