Netty 客戶端登陸流程

接上篇,九份小火車的駕駛室

終點站,熟悉嗎?《那些年我們追過的女孩》場景之一

到了九份,依山而建,山下遠處就是大海

像不像千與千尋裏的,宮崎駿的千與千尋就是在這裏完成構思

湯婆婆的屋

最後來張小喫店的圖,好多小喫,人很多,很溫馨。

                                                                               微信公衆號

                                              王皓的GitHub:https://github.com/TenaciousDWang

 

        今天來實現Netty客戶端登陸功能,服務端收到後返回響應,客戶端收到服務端響應後打印到控制檯,具體流程圖如下。

 

 

        之前我們已經創建了一個客戶端和一個服務端,根據上面的登陸邏輯流程先開始實現客戶端的發送登錄請求的邏輯,我們只需要編寫一個登陸邏輯處理器,綁定到channel的邏輯處理鏈上即可。接下來我們來實現它。

 

         首先來改造一下編碼過程的方法爲ByteBuf encode(ByteBuf byteBuf,Packet packet),並將PacketCodeC寫成單例,不再手動創建ByteBuf,而是從ChannelHandlerContext中獲取。

 

 

        然後創建邏輯處理器。

 

 

        連接成功時會調用channelActive方法,我們先創建一個登陸對象,設置數據後,進行編碼返回ByteBuf後,爲連接寫入數據發送。最後我們給客戶端添加剛纔創建的處理器。

 

 

        接下來我們來創建服務端邏輯處理器,服務端的handler,服務端使用channelRead()方法讀取數據,創建登陸響應指令數據包。根據校驗用戶數據情況填充不同響應數據,寫入響應,同樣也將這個邏輯處理器給服務端綁定上。

 

 

        最後客戶端的Handler需要添加channelRead()方法讀取服務端返回的響應數據。

 

 

最後啓動服務端與客戶端,即可在控制檯看到結果~

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章