欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

從事西部信息服務(wù)器托管,服務(wù)器租用,云主機(jī),虛擬主機(jī)域名注冊,CDN,網(wǎng)絡(luò)代維等服務(wù)。

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

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

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

最后,采用的spring+注解的方式實現(xiàn)websocket方案。

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

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

堆棧如下:
如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信

 
然后,結(jié)合springmvc的執(zhí)行流程進(jìn)行分析:
如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信

 
經(jīng)過分析,我們可以將整個模型邏輯從servelt 搬遷到 相應(yīng)的Filter上,但是面對諸多的配置,如何平滑的遷移是個問題,我是這樣處理的,在mvc這邊執(zhí)行時打上斷點,查看相應(yīng)內(nèi)存中的變量類型,然后手動構(gòu)造:
原來的代碼長這樣:
如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信

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

我造的代碼如下:
如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信

 如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信

其它的邏輯就直接基于struts即可。
經(jīng)過實踐,是可行的,且用起來很順手,暫未發(fā)現(xiàn)其余問題。

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

文章名稱:如何通過WebSocket實現(xiàn)瀏覽器與服務(wù)器的通信-創(chuàng)新互聯(lián)
當(dāng)前URL:http://www.chinadenli.net/article40/gspeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)企業(yè)網(wǎng)站制作虛擬主機(jī)品牌網(wǎng)站設(shè)計外貿(mào)建站網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)