Netty 客戶端和服務端發送與接受消息

剛好翻以前拍的照片,今天就發幾張去朋友家擼貓拍的照片吧。

 

                                                                    微信公衆號

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

 

        繼續做一個客戶端與服務端收發消息的功能,首先來創建兩個COMMAND指令名稱。

 

 

MESSAGE_REQUEST對應客戶端發送消息請求,MESSAGE_RESPONSE對應服務端響應消息請求,相應的我們來創建兩個數據包對象MessageRequestPacket與MessageResponsePacket。

 

 

        接下來,我們來判斷客戶端是否登錄成功,之前我們知道可以給Channel綁定屬性,那麼我們可以在客戶端登陸成功後,爲該連接的Channel綁定,先創建一個標誌位對象。

 

 

          接下來,將登錄成功與判斷是否登陸成功抽取出一個工具類。

 

 

        最後在客戶端收到服務端發來的登錄成功相應後設置登陸成功標誌位。

 

        

        接下來改造一下客戶端,寫一個線程用來監控控制檯輸入數據,一旦有數據輸入就編碼併發送。

 

 

        然後我們來改造客戶端的邏輯處理器,添加數據包類型判斷,對應不同的處理邏輯,其中當判斷packet類型爲MessageRequestPacket時,我們讀取message數據打印在控制檯上,並創建MessageResponsePacket,填充數據,編碼後放入ByteBuf中發送至客戶端。

 

 

        最後我們來改造客戶端邏輯處理器,同客戶端邏輯處理器改造,我們同樣需要添加對於數據包類型的判斷,來對應不同的處理邏輯,這裏我們添加對於MessageResponsePacket類型數據包的判斷,如果爲此類型,則讀取message打印至控制檯。

 

 

        以上就是今天實現的客戶端與服務端收發消息的功能。

 

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