接上篇,九份小火車的駕駛室
終點站,熟悉嗎?《那些年我們追過的女孩》場景之一
到了九份,依山而建,山下遠處就是大海
像不像千與千尋裏的,宮崎駿的千與千尋就是在這裏完成構思
湯婆婆的屋
最後來張小喫店的圖,好多小喫,人很多,很溫馨。
微信公衆號
王皓的GitHub:https://github.com/TenaciousDWang
今天來實現Netty客戶端登陸功能,服務端收到後返回響應,客戶端收到服務端響應後打印到控制檯,具體流程圖如下。
之前我們已經創建了一個客戶端和一個服務端,根據上面的登陸邏輯流程先開始實現客戶端的發送登錄請求的邏輯,我們只需要編寫一個登陸邏輯處理器,綁定到channel的邏輯處理鏈上即可。接下來我們來實現它。
首先來改造一下編碼過程的方法爲ByteBuf encode(ByteBuf byteBuf,Packet packet),並將PacketCodeC寫成單例,不再手動創建ByteBuf,而是從ChannelHandlerContext中獲取。
然後創建邏輯處理器。
連接成功時會調用channelActive方法,我們先創建一個登陸對象,設置數據後,進行編碼返回ByteBuf後,爲連接寫入數據發送。最後我們給客戶端添加剛纔創建的處理器。
接下來我們來創建服務端邏輯處理器,服務端的handler,服務端使用channelRead()方法讀取數據,創建登陸響應指令數據包。根據校驗用戶數據情況填充不同響應數據,寫入響應,同樣也將這個邏輯處理器給服務端綁定上。
最後客戶端的Handler需要添加channelRead()方法讀取服務端返回的響應數據。
最後啓動服務端與客戶端,即可在控制檯看到結果~