久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何通過WebSocket實現瀏覽器與服務器的通信

254次閱讀
沒有評論

共計 1082 個字符,預計需要花費 3 分鐘才能閱讀完成。

這篇文章給大家分享的是有關如何通過 WebSocket 實現瀏覽器與服務器的通信的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

現如今有個需求,基于 websocket 實現瀏覽器與服務器的通信。由于之前沒有使用過 websocket,在網上大致搜索了一圈,尋找 websocket 的集成方案。網上尋找的方案大致如下:
1. 基于 spring 的方式實現,加入 spring-websocket 依賴,加注解,配置相應的攔截器和路徑;
2. 基于 springBoot 的方式,本質上還是基于 spring;
3. 基于 J2EE 應用服務器,好像從 tomcat7 開始有提供 websocket 支持,直接用 @WebsocketEnd 可實現,該注解由 servlet 包提供;

它們有一個特點,那就是基于 servlet 實現的 (第 3 種方式尚未求證).

然而,由于種種原因,我需要基于 struts2 實現,也就是基于 Filter 實現這個過程,百度了良久,發現的方案是: 在 struts2 的攔截器中使用元字符開辟一個路徑,然后再進行攔截,嘗試未果!
constant name= struts.action.excludePattern value= /ws/.*,ws://.* /constant

最后,采用的 spring+ 注解的方式實現 websocket 方案。

又由于其他的原因,導致勢必要將基于 spirngmvc,也就是 servelt 的方案轉到 struts,也就是 Filer 去。因此,經過一番思索加上實踐,終于找到了相應的解決方案這里記錄一下,以期能夠幫助同僚們解決相應的需求:

首先使用堆棧追蹤,找到 websocket 這個 servlet 執行流程:

堆棧如下:

 
然后,結合 springmvc 的執行流程進行分析:

 
經過分析,我們可以將整個模型邏輯從 servelt 搬遷到 相應的 Filter 上,但是面對諸多的配置,如何平滑的遷移是個問題,我是這樣處理的,在 mvc 這邊執行時打上斷點,查看相應內存中的變量類型,然后手動構造:
原來的代碼長這樣:

 
經實踐,那些眾多的配置以及 @Configuration 用于與 springmvc 的相應配置,以及這里本地參數的初始化。因此我完全可以手造一個。

我造的代碼如下:

 

其它的邏輯就直接基于 struts 即可。
經過實踐,是可行的,且用起來很順手,暫未發現其余問題。

感謝各位的閱讀!關于“如何通過 WebSocket 實現瀏覽器與服務器的通信”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1082字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 沂源县| 张家川| 灵石县| 南木林县| 花垣县| 南宁市| 沛县| 高密市| 格尔木市| 定结县| 佛坪县| 夏津县| 栾川县| 金昌市| 金溪县| 绥化市| 泽州县| 富民县| 陇南市| 田东县| 寿宁县| 九江市| 区。| 同仁县| 双牌县| 泰州市| 宜兴市| 定安县| 乾安县| 句容市| 湖北省| 房产| 神池县| 德阳市| 米泉市| 永嘉县| 甘南县| 喀喇沁旗| 溧阳市| 东方市| 仙居县|