簡體   English   中英

請問javax.servlet.Filter攔截Websocket消息? (Java Servlet API)

[英]Will javax.servlet.Filter intercept Websocket messages? (Java Servlet API)

當我有一個websocket連接時,請說“/ ws”

“/ ws”路徑上的常規javax.servlet.Filter是否會將每條消息作為常規http請求攔截? 它會截取第一個請求(作為握手的一部分嗎?)

如果不是,那么,我如何為websocket消息制作這樣的過濾器?

我沒有在規范中找到任何具體細節。

不,Servlet過濾器不會捕獲WebSocket消息。

Servlet根本不支持WebSocket協議。 你唯一能做的就是注冊HttpUpgradeHandler (參見HttpServletRequest#upgrade ),然后在其上實現WebSocket協議。

或者..如果你想節省一些時間,看看JSR 356和實現,他們正在使用這個API。 我個人在Tyrus上工作,這是JSR 356的參考實現。(它是Java EE 7的一部分,但您只需要Servlet 3.1 API)。

它會截取第一個請求(作為握手的一部分嗎?)

是的,只有第一個請求,即啟動WebSocket握手的請求,才被Servlet過濾器攔截。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM