天天看點

netty系列之:使用netty搭建websocket伺服器-1

websocket是一個優秀的協定,它是建立在tcp基礎之上的,相容http的網絡協定。通過websocket我們可以實作用戶端和伺服器端的即時通訊,免除了用戶端多次輪循帶來的性能損耗。

既然websocket這麼優秀,那麼怎麼在netty中使用websocket呢?

netty中的websocket

雖然websocket是一個單獨的和http協定完全不同的協定,但是在netty中還是将其放到了http包中。我們回想一下netty中對于各種協定的支援。如果要支援這種協定,肯定需要一個decoder和encoder編碼和解碼器用于對協定進行編解碼。将傳輸的資料從bytebuf轉換到協定類型,或者将協定類型轉換成為bytebuf。

這是netty的工作核心原理,也是後續自定義netty擴充的基礎。

那麼對于websocket來說,是怎麼樣的呢?

websocket的版本

websocket作為一種協定,自然不是憑空而來的,通過不斷的發展才到了今天的websocket協定。具體的websocket的發展史我們就不去深究了。我們先看下netty提供的各種websocket的版本。

在websocketversion類中,我們可以看到:

unknown(asciistring.cached(stringutil.empty_string)),

   v00(asciistring.cached("0")),

   v07(asciistring.cached("7")),

   v08(asciistring.cached("8")),

   v13(asciistring.cached("13"));