1. 程式人生 > >探討Netty獲取並檢查Websocket握手請求的兩種方式

探討Netty獲取並檢查Websocket握手請求的兩種方式

在使用Netty開發Websocket服務時,通常需要解析來自客戶端請求的URL、Headers等等相關內容,並做相關檢查或處理。本文將討論兩種實現方法。

方法一:基於HandshakeComplete自定義事件

特點:使用簡單、校驗在握手成功之後、失敗資訊可以通過Websocket傳送回客戶端。

1.1 從netty原始碼出發

一般地,我們將netty內建的WebSocketServerProtocolHandler作為Websocket協議的主要處理器。通過研究其程式碼我們瞭解到在本處理器被新增到PiplinehandlerAdded方法將會被呼叫。此方法經過簡單的檢查後將WebSocketHandshakeHandler

新增到了本處理器之前,用於處理握手相關業務。

我們都知道Websocket協議在握手時是通過HTTP(S)協議進行的,那麼這個WebSocketHandshakeHandler應該就是處理HTTP相關的資料的吧?

下方程式碼經過精簡,放心閱讀