Netty實現WebSocket,URI參數問題


1、問題:

Netty對WebSocket提供了很好的支持,在pipeline里添加一個WebSocketServerProtocolHandler就可以方便的暴露一個ws接口出去。但是,開發中卻遇到一點小問題,需要在ws的URI帶上參數queryString(如:/im/ws?w=221100234&t=99),然而這樣會導致ws連接無法建立,瀏覽器報錯:Connection closed before receiving a handshake response。

2、解決:

因為全安問題,ws是不推薦通過queryString攜帶信息的,所以Netty里WebSocketServerProtocolHandler默認的構造器是要求對連接建立時傳入的URI與程序指定的路徑完全匹配。

checkStartsWith即是控制根據startsWith來做URI匹配,所以改用重載的構造器即可解決問題(注意queryString上不要攜帶敏感信息)。

checkStartsWith使用的地方如下圖中WebSocketServerProtocolHandshakeHandler類:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM