本技術(shù)涉及一種基于代理技術(shù)實(shí)現(xiàn)多瀏覽器兼容的控制系統(tǒng)及方法,屬于計(jì)算機(jī)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,chrome、firefox、safari等現(xiàn)代瀏覽器逐漸成為主流。相較于老舊的ie(internet?explorer)瀏覽器,現(xiàn)代瀏覽器在安全性、性能、開發(fā)生態(tài)等方面具備明顯優(yōu)勢(shì)。因此,許多企業(yè)和用戶已經(jīng)逐步淘汰了ie瀏覽器。然而,部分企業(yè)系統(tǒng)仍依賴基于activex等技術(shù)的網(wǎng)頁(yè)應(yīng)用,這些應(yīng)用只能在ie瀏覽器中正常運(yùn)行。如果強(qiáng)制使用現(xiàn)代瀏覽器,無法加載這些業(yè)務(wù)系統(tǒng),導(dǎo)致企業(yè)用戶的日常業(yè)務(wù)受到影響。
2、為了保證現(xiàn)代瀏覽器能夠兼容ie瀏覽器中運(yùn)行的業(yè)務(wù)系統(tǒng),提出了以下兩種方法:
3、1、通過ie內(nèi)核模擬實(shí)現(xiàn)兼容。此時(shí),通常要求用戶在現(xiàn)代瀏覽器中安裝特定的插件,以在現(xiàn)代瀏覽器中模擬ie內(nèi)核或?qū)崿F(xiàn)相關(guān)功能。然而,這類插件往往僅適用于部分現(xiàn)代瀏覽器,無法全面支持所有主流瀏覽器。此外,用戶在訪問兼容網(wǎng)站時(shí)仍需手動(dòng)激活兼容模式,這不僅增加了操作的復(fù)雜性,還打破了流暢的瀏覽體驗(yàn)。依賴這種插件的方案限制了用戶的使用自由,導(dǎo)致用戶在瀏覽時(shí)面臨諸多不便的問題。
4、2、通過雙核瀏覽器切換實(shí)現(xiàn)兼容。此時(shí),一些雙核瀏覽器具備切換到ie內(nèi)核的功能,以處理特定的兼容性需求。盡管這種方式在一定程度上實(shí)現(xiàn)了對(duì)ie依賴的支持,但用戶仍需手動(dòng)切換內(nèi)核,或強(qiáng)制使用特定的瀏覽器來訪問業(yè)務(wù)系統(tǒng)。這一過程不僅增加了操作步驟,也限制了用戶選擇瀏覽器的自由,降低了整體使用體驗(yàn)的流暢性。
5、上述現(xiàn)有技術(shù)的共同問題在于,它們都無法實(shí)現(xiàn)無感兼容,即用戶仍需進(jìn)行手動(dòng)操作或在特定場(chǎng)景下通過專用工具進(jìn)行訪問,破壞了瀏覽器的一致性體驗(yàn)。另外,這種用戶感知明顯的解決方案無法完全滿足業(yè)務(wù)需求,特別是在大型企業(yè)環(huán)境中,頻繁的插件更新和軟件維護(hù)增加了it管理的工作負(fù)擔(dān),也可能導(dǎo)致潛在的安全風(fēng)險(xiǎn),增加維護(hù)成本。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種基于代理技術(shù)實(shí)現(xiàn)多瀏覽器兼容的控制方法、裝置及存儲(chǔ)介質(zhì),能夠在現(xiàn)代瀏覽器中無感適配僅支持ie技術(shù)的網(wǎng)頁(yè)系統(tǒng)。通過代理技術(shù)和websocket回傳機(jī)制,不僅確保了對(duì)舊有業(yè)務(wù)系統(tǒng)的兼容性,還保持了用戶訪問流程的透明性,用戶無需更改瀏覽器或安裝任何插件,完全維持了其原有的操作習(xí)慣。本技術(shù)提供如下技術(shù)方案:
2、第一方面,提供了一種基于代理技術(shù)實(shí)現(xiàn)多瀏覽器兼容的控制系統(tǒng),所述系統(tǒng)包括:
3、現(xiàn)代瀏覽器,用于獲取用戶輸入的業(yè)務(wù)系統(tǒng)的地址并發(fā)起訪問請(qǐng)求;通過本地的端口轉(zhuǎn)發(fā)模塊捕獲發(fā)往預(yù)設(shè)業(yè)務(wù)系統(tǒng)的流量;在捕獲到的流量包括請(qǐng)求的情況下,將所述流量轉(zhuǎn)發(fā)至代理服務(wù)模塊的第一監(jiān)聽端口;
4、所述代理服務(wù)模塊,用于在通過所述第一監(jiān)聽端口接收到所述端口轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)的流量后,確定所述流量是否來自ie瀏覽器;在所述流量來自非ie瀏覽器的情況下,向所述現(xiàn)代瀏覽器返回websocket客戶端頁(yè)面,所述websocket客戶端頁(yè)面包括canvas畫布;
5、所述現(xiàn)代瀏覽器,還用于加載所述websocket客戶端頁(yè)面后,初始化websocket連接,以建立與websocket服務(wù)模塊之間的連接;監(jiān)聽所述canvas畫布捕獲用戶的操作事件,將所述操作事件通過所述websocket連接傳輸至所述websocket服務(wù)模塊;
6、所述websocket服務(wù)模塊,用于通過第二監(jiān)聽端口監(jiān)聽到所述操作事件的情況下,將所述操作事件映射到本地預(yù)設(shè)的ie控件,所述ie控件用于模擬ie瀏覽器的行為;定期對(duì)所述ie控件進(jìn)行截圖,將所述截圖對(duì)應(yīng)的截圖數(shù)據(jù)通過所述websocket連接返回至所述現(xiàn)代瀏覽器;
7、所述現(xiàn)代瀏覽器,還用于在通過所述websocket連接接收到所述截圖數(shù)據(jù)后,在所述canvas畫布顯示所述截圖數(shù)據(jù)對(duì)應(yīng)的用戶頁(yè)面。
8、可選地,所述代理服務(wù)模塊,還用于:在所述流量來自ie瀏覽器的情況下,與代理服務(wù)器之間建立http隧道并轉(zhuǎn)發(fā)所述流量,以通過所述隧道將用戶的實(shí)際請(qǐng)求流量轉(zhuǎn)發(fā)至業(yè)務(wù)系統(tǒng)。
9、可選地,所述ie控件為所述websocket服務(wù)模塊本地winforms應(yīng)用中的webbrowser控件。
10、可選地,所述第一監(jiān)聽端口為:127.0.0.1:54032;所述第二監(jiān)聽端口為127.0.0.1:54031。
11、可選地,所述websocket服務(wù)模塊定期對(duì)所述ie控件進(jìn)行截圖的過程中,采用圖形設(shè)備接口gdi進(jìn)行優(yōu)化。
12、可選地,所述將所述截圖對(duì)應(yīng)的截圖數(shù)據(jù)通過所述websocket連接返回至所述現(xiàn)代瀏覽器,包括:
13、對(duì)所述截圖轉(zhuǎn)換為base64編碼格式,得到所述截圖數(shù)據(jù);
14、將所述截圖數(shù)據(jù)通過所述websocket連接返回至所述現(xiàn)代瀏覽器。
15、可選地,所述在所述canvas畫布顯示所述截圖數(shù)據(jù)對(duì)應(yīng)的用戶頁(yè)面,包括:
16、對(duì)base64編碼格式的截圖數(shù)據(jù)進(jìn)行解析,得到解析后的圖像;
17、將所述圖像繪制至所述canvas畫布,以實(shí)時(shí)更新所述用戶頁(yè)面。
18、可選地,所述確定所述流量是否來自ie瀏覽器,包括:
19、根據(jù)請(qǐng)求中的user-agent確定所述流量是否來自ie瀏覽器。
20、第二方面,提供了一種基于代理技術(shù)實(shí)現(xiàn)多瀏覽器兼容的控制方法,所述方法包括:
21、通過現(xiàn)代瀏覽器獲取用戶輸入的業(yè)務(wù)方法的地址并發(fā)起訪問請(qǐng)求;通過本地的端口轉(zhuǎn)發(fā)模塊捕獲發(fā)往預(yù)設(shè)業(yè)務(wù)方法的流量;在捕獲到的流量包括請(qǐng)求的情況下,將所述流量轉(zhuǎn)發(fā)至代理服務(wù)模塊的第一監(jiān)聽端口;
22、通過代理服務(wù)模塊的所述第一監(jiān)聽端口接收到所述端口轉(zhuǎn)發(fā)模塊轉(zhuǎn)發(fā)的流量后,確定所述流量是否來自ie瀏覽器;在所述流量來自非ie瀏覽器的情況下,向所述現(xiàn)代瀏覽器返回websocket客戶端頁(yè)面,所述websocket客戶端頁(yè)面包括canvas畫布;
23、通過所述現(xiàn)代瀏覽器加載所述websocket客戶端頁(yè)面后,初始化websocket連接,以建立與websocket服務(wù)模塊之間的連接;監(jiān)聽所述canvas畫布捕獲用戶的操作事件,將所述操作事件通過所述websocket連接傳輸至所述websocket服務(wù)模塊;
24、通過所述websocket服務(wù)模塊的第二監(jiān)聽端口監(jiān)聽到所述操作事件的情況下,將所述操作事件映射到本地預(yù)設(shè)的ie控件,所述ie控件用于模擬ie瀏覽器的行為;定期對(duì)所述ie控件進(jìn)行截圖,將所述截圖對(duì)應(yīng)的截圖數(shù)據(jù)通過所述websocket連接返回至所述現(xiàn)代瀏覽器;
25、通過現(xiàn)代瀏覽器基于所述websocket連接接收到所述截圖數(shù)據(jù)后,在所述canvas畫布顯示所述截圖數(shù)據(jù)對(duì)應(yīng)的用戶頁(yè)面。
26、可選地,所述方法還包括:
27、在所述流量來自ie瀏覽器的情況下,與代理服務(wù)器之間建立http隧道并轉(zhuǎn)發(fā)所述流量,以通過所述隧道將用戶的實(shí)際請(qǐng)求流量轉(zhuǎn)發(fā)至業(yè)務(wù)系統(tǒng)。
28、本技術(shù)的有益效果包括:
29、1.完全透明的用戶體驗(yàn):使用透明代理技術(shù),用戶在瀏覽器無需安裝任何插件,訪問流程與訪問原站點(diǎn)無異,實(shí)現(xiàn)了真正的“無感適配”。用戶可以繼續(xù)使用他們習(xí)慣的現(xiàn)代瀏覽器,無需為某些業(yè)務(wù)系統(tǒng)單獨(dú)保留ie瀏覽器,或安裝特定瀏覽器插件。
30、2.自動(dòng)化的分流處理:僅針對(duì)特定站點(diǎn)進(jìn)行代理,能夠識(shí)別并區(qū)分用戶的訪問請(qǐng)求,只對(duì)特定依賴于ie內(nèi)核的站點(diǎn)進(jìn)行代理操作,對(duì)于不需要兼容處理的普通站點(diǎn),會(huì)直接將請(qǐng)求發(fā)送至實(shí)際的業(yè)務(wù)服務(wù)器,不做任何代理處理。這樣可以避免對(duì)普通站點(diǎn)的訪問造成不必要的延遲。
31、3.增強(qiáng)的安全性:現(xiàn)代瀏覽器在安全性方面遠(yuǎn)優(yōu)于ie瀏覽器,本發(fā)明允許用戶在不依賴ie的情況下,使用現(xiàn)代瀏覽器的安全功能,同時(shí)保持對(duì)基于activex技術(shù)的舊有系統(tǒng)的訪問能力。
32、上述說明僅是本技術(shù)技術(shù)方案的概述,為了能夠更清楚了解本技術(shù)的技術(shù)手段,并可依照說明書的內(nèi)容予以實(shí)施,以下以本技術(shù)的較佳實(shí)施例并配合附圖詳細(xì)說明如后。