摘要:抽象在中步驟監(jiān)聽端口對應(yīng)就是,即事件循環(huán),這里的循環(huán)包括兩個部分,一個是新連接的接入,而另一個則是當(dāng)前存在連接的數(shù)據(jù)流的讀寫。對的抽象服務(wù)端接收數(shù)據(jù)流的載體都是基于,封裝了許多高可用的,我們可以基于這些與底層數(shù)據(jù)流做通信。
傳統(tǒng)socket
首先還是先了解下傳統(tǒng)socket下的通信流程
流程很清晰,細節(jié)不講太多。
Netty抽象在netty中步驟1監(jiān)聽端口對應(yīng)就是NioEventLoop,即事件循環(huán),這里的循環(huán)包括兩個部分,一個是新連接的接入,而另一個則是當(dāng)前存在連接的數(shù)據(jù)流的讀寫。
接著接到一個新用戶的連接,而其在java底層是作為Socket來處理,即在IO下是socket,NIO下是SocketChannel,而Netty將其自定義封裝為Channel,基于此Channel,一系列的讀寫都可以在其連接上工作。(對Socket的抽象)
服務(wù)端接收數(shù)據(jù)流的載體都是基于ByteBuf,ByteBuf封裝了許多高可用的API,我們可以基于這些API與底層數(shù)據(jù)流做通信。
當(dāng)數(shù)據(jù)流到達服務(wù)端后,服務(wù)端需要處理一些業(yè)務(wù)邏輯,這時就是ChannelHandler。我們也可以自定義Java對象,在ChannelHandler中做處理,數(shù)據(jù)包的分包、不同類型數(shù)據(jù)包的Java轉(zhuǎn)換。
數(shù)據(jù)流的寫出也是基于ByteBuf。
ChannelHandler是一個列的形式。Netty將這些邏輯串了起來,讓用戶方便的對業(yè)務(wù)做處理。
相關(guān)項目關(guān)于Netty的產(chǎn)品導(dǎo)向項目 UncleCatMySelf/SBToNettyChat
如果本文對你有所幫助,歡迎關(guān)注本人技術(shù)公眾號,謝謝。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77209.html
摘要:它使用了事件通知以確定在一組非阻塞套接字中有哪些已經(jīng)就緒能夠進行相關(guān)的操作。目前,可以把看作是傳入入站或者傳出出站數(shù)據(jù)的載體。出站事件是未來將會觸發(fā)的某個動作的操作結(jié)果,這些動作包括打開或者關(guān)閉到遠程節(jié)點的連接將數(shù)據(jù)寫到或者沖刷到套接字。 netty的概念 定義 Netty 是一款異步的事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架,支持快速地開發(fā)可維護的高性能的面向協(xié)議的服務(wù)器和客戶端。我們可以很簡單的...
摘要:事件循環(huán)新連接接入連接上的數(shù)據(jù)讀取抽象連接抽象業(yè)務(wù)邏輯處理讀寫數(shù)據(jù)期間的業(yè)務(wù)層動態(tài)鏈處理多個組成,讓消息可以層層處理數(shù)據(jù)接收基本的數(shù)據(jù)處理基于公眾號貓說學(xué)習(xí)交流群現(xiàn)架構(gòu)設(shè)計碼農(nóng)兼創(chuàng)業(yè)技術(shù)顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。 本博客 貓叔的博客,轉(zhuǎn)載請申明出處閱讀本文約 4分鐘 適讀人群:同學(xué) Java IO,Socket非阻塞通信流程 這里我們使用一個內(nèi)嵌的永久循環(huán),...
摘要:目錄源碼分析之番外篇的前生今世的前生今世之一簡介的前生今世之二小結(jié)的前生今世之三詳解的前生今世之四詳解源碼分析之零磨刀不誤砍柴工源碼分析環(huán)境搭建源碼分析之一揭開神秘的紅蓋頭源碼分析之一揭開神秘的紅蓋頭客戶端源碼分析之一揭開神秘的紅蓋頭服務(wù)器 目錄 Netty 源碼分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 簡介 Java NIO 的前生今世 ...
摘要:豐富的緩存數(shù)據(jù)結(jié)構(gòu)使用它自己的緩存來表示字節(jié)序列而不是的。針對有一個定義良好的事件模型。有一些協(xié)議是多層的建立在其他低級協(xié)議基礎(chǔ)上。此外,甚至不是完全線程安全的。協(xié)議由標(biāo)準(zhǔn)化為。協(xié)議緩存整合是一個高效二進制協(xié)議的快速實現(xiàn)。 Chapter 2、結(jié)構(gòu)概覽 這一節(jié)我們將確認(rèn)Netty提供的核心功能是什么,以及它們怎么構(gòu)成一個完整的網(wǎng)絡(luò)應(yīng)用開發(fā)堆棧。 1、豐富的緩存數(shù)據(jù)結(jié)構(gòu) Netty使用它...
摘要:下面無恥的貼點源碼。啟動類我們也學(xué),把啟動類抽象成兩層,方便以后寫客戶端。別著急,我們慢慢來,下一篇我們會了解以及他的成員,然后,完善我們的程序,增加其接收數(shù)據(jù)的能力。文章的源碼我會同步更新到我的上,歡迎大家,哈哈。 廢話兩句 這次更新拖了很長時間,第一是自己生病了,第二是因為最開始這篇想寫的很大,然后構(gòu)思了很久,發(fā)現(xiàn)不太合適把很多東西寫在一起,所以做了點拆分,準(zhǔn)備國慶前完成這篇博客。...
閱讀 3245·2023-04-26 03:06
閱讀 3712·2021-11-22 09:34
閱讀 1169·2021-10-08 10:05
閱讀 3067·2021-09-22 15:53
閱讀 3581·2021-09-14 18:05
閱讀 1466·2021-08-05 09:56
閱讀 1974·2019-08-30 15:56
閱讀 2151·2019-08-29 11:02