本申請(qǐng)涉及信息處理,尤其涉及一種多窗口消息共享方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、當(dāng)前,隨著互聯(lián)網(wǎng)的發(fā)展,越來(lái)越注重多窗口之間的消息同步。
2、相關(guān)技術(shù)中,通過(guò)websocket能夠?qū)崿F(xiàn)客戶端與服務(wù)器的實(shí)時(shí)雙向通信,多個(gè)瀏覽器窗口之間的通信,通常需要通過(guò)localstorage、broadcastchannel等方法實(shí)現(xiàn)。但是,在實(shí)際應(yīng)用中發(fā)現(xiàn),localstorage的事件監(jiān)聽(tīng)具有局限性,而broadcastchannel在兼容性上存在一定限制,導(dǎo)致多窗口消息共享時(shí)效率低下。
3、綜上,相關(guān)技術(shù)中存在的技術(shù)問(wèn)題有待得到改善。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供了一種多窗口消息共享方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),能夠有效確保數(shù)據(jù)的一致性和實(shí)時(shí)性,顯著提升用戶體驗(yàn)和系統(tǒng)性能。
2、一方面,本申請(qǐng)實(shí)施例提供了一種多窗口消息共享方法,包括以下步驟:
3、響應(yīng)于目標(biāo)窗口的連接請(qǐng)求,構(gòu)建并初始化與所述目標(biāo)窗口之間的共享線程sharedworker;
4、調(diào)用所述共享線程sharedworker中預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化websocket連接;
5、在所述共享線程sharedworker與所述websocket連接初始化成功的情況下,接收由所述sharedworker共享的websocket服務(wù)器推送信息。
6、可選地,所述響應(yīng)于目標(biāo)窗口的連接請(qǐng)求,構(gòu)建并初始化與所述目標(biāo)窗口之間的共享線程sharedworker,包括:
7、響應(yīng)于目標(biāo)窗口的連接請(qǐng)求,調(diào)用sharedworker腳本;
8、根據(jù)所述sharedworker腳本,構(gòu)建并初始化與所述目標(biāo)窗口之間的sharedworker實(shí)例;
9、通過(guò)所述目標(biāo)窗口與所述共享線程sharedworker之間的消息端口,向所述共享線程sharedworker發(fā)送初始化信息,并啟動(dòng)所述共享線程sharedworker。
10、可選地,在所述響應(yīng)于目標(biāo)窗口的連接請(qǐng)求,調(diào)用sharedworker腳本之前,還包括:
11、在應(yīng)用狀態(tài)管理庫(kù)pinia的倉(cāng)庫(kù)中封裝所述sharedworker腳本,其中所述sharedworker腳本包括倉(cāng)庫(kù)唯一識(shí)別符、狀態(tài)參數(shù)、初始化sharedworker實(shí)例方法。
12、可選地,在所述調(diào)用所述共享線程sharedworker中預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化websocket連接之前,還包括:
13、確定所述目標(biāo)窗口是否已存在初始化成功的websocket實(shí)例以及是否已成功連接websocket服務(wù)器;
14、在已存在初始化成功的所述websocket實(shí)例以及已成功連接所述websocket服務(wù)器的情況下,直接返回所述websocket連接初始化成功的信息;
15、在未存在初始化成功的所述websocket實(shí)例或未成功連接所述websocket服務(wù)器的情況下,調(diào)用所述共享線程sharedworker中預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化所述websocket連接。
16、可選地,所述調(diào)用所述共享線程sharedworker中預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化websocket連接,包括:
17、調(diào)用預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化所述websocket連接;
18、啟動(dòng)所述websocket連接的心跳檢測(cè)機(jī)制與重連機(jī)制,返回所述websocket連接初始化成功的信息。
19、可選地,所述websocket實(shí)例包括初始化變量、構(gòu)造函數(shù)、初始化方法、發(fā)送信息方法、接收信息方法、驗(yàn)證連接方法、重置心跳檢測(cè)方法、重連方法以及關(guān)閉連接方法。
20、可選地,所述方法還包括:
21、通過(guò)弱引用weakref管理每一窗口與所述共享線程sharedworker之間進(jìn)行連接的信息端口。
22、可選地,所述方法還包括:
23、在所述共享線程sharedworker與所述websocket連接初始化成功的情況下,上傳所述目標(biāo)窗口的推送信息至所述共享線程sharedworker,從而由所述共享線程sharedworker將所述目標(biāo)窗口的推送信息轉(zhuǎn)發(fā)至websocket服務(wù)器。
24、另一方面,本申請(qǐng)實(shí)施例提供了一種多窗口消息共享裝置,裝置包括:
25、sharedworker連接模塊,用于響應(yīng)于目標(biāo)窗口的連接請(qǐng)求,構(gòu)建并初始化與所述目標(biāo)窗口之間的共享線程sharedworker;
26、websocket連接模塊,用于調(diào)用所述共享線程sharedworker中預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化websocket連接;
27、信息共享模塊,用于在所述共享線程sharedworker與所述websocket連接初始化成功的情況下,接收由所述共享線程sharedworker共享的websocket服務(wù)器推送信息。
28、另一方面,本申請(qǐng)實(shí)施例提供了一種電子設(shè)備,電子設(shè)備包括存儲(chǔ)器和處理器,存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,處理器執(zhí)行計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述多窗口消息共享方法。
29、另一方面,本申請(qǐng)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述多窗口消息共享方法。
30、本申請(qǐng)實(shí)施例通過(guò)使用共享線程sharedworker實(shí)現(xiàn)多個(gè)窗口之間的消息共享,再將websocket的通信邏輯集中于共享線程sharedworker中,不僅利用websocket連接服務(wù)器,建立實(shí)時(shí)通信通道,還能有效避免每個(gè)窗口獨(dú)立創(chuàng)建websocket的資源浪費(fèi),有效確保數(shù)據(jù)的一致性和實(shí)時(shí)性,顯著提升用戶體驗(yàn)和系統(tǒng)性能。
1.一種多窗口消息共享方法,其特征在于,所述方法包括以下步驟:
2.根據(jù)權(quán)利要求1所述的多窗口消息共享方法,其特征在于,所述響應(yīng)于目標(biāo)窗口的連接請(qǐng)求,構(gòu)建并初始化與所述目標(biāo)窗口之間的共享線程sharedworker,包括:
3.根據(jù)權(quán)利要求2所述的多窗口消息共享方法,其特征在于,在所述響應(yīng)于目標(biāo)窗口的連接請(qǐng)求,調(diào)用sharedworker腳本之前,還包括:
4.根據(jù)權(quán)利要求1所述的多窗口消息共享方法,其特征在于,在所述調(diào)用所述共享線程sharedworker中預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化websocket連接之前,還包括:
5.根據(jù)權(quán)利要求4所述的多窗口消息共享方法,其特征在于,所述調(diào)用所述共享線程sharedworker中預(yù)先封裝好的websocket實(shí)例,構(gòu)建并初始化websocket連接,包括:
6.根據(jù)權(quán)利要求4所述的多窗口消息共享方法,其特征在于,所述websocket實(shí)例包括初始化變量、構(gòu)造函數(shù)、初始化方法、發(fā)送信息方法、接收信息方法、驗(yàn)證連接方法、重置心跳檢測(cè)方法、重連方法以及關(guān)閉連接方法。
7.根據(jù)權(quán)利要求1所述的多窗口消息共享方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求1所述的多窗口消息共享方法,其特征在于,所述方法還包括:
9.一種多窗口消息共享裝置,其特征在于,所述裝置包括:
10.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至8任一項(xiàng)所述的多窗口消息共享方法。
11.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至8中任一項(xiàng)所述的多窗口消息共享方法。