一種Web實時數據主動推送方法
2023-10-04 14:13:09
專利名稱:一種Web實時數據主動推送方法
技術領域:
本發明涉及一種Web實時數據推送方法,尤其涉及一種用在電力計量業務生產調度平臺中的Web實時數據主動推送方法。
背景技術:
目前,在電力計量業務生產調度平臺中,需要在客戶端瀏覽器中監測設備的工作狀態及相關數據,且由於工作的重要性,這些數據要求實時展現。在這種情況下,採用傳統的瀏覽器定時請求的模式就不符合要求了。一個典型的伺服器與客戶端瀏覽器之間的交互如下所示
(1)、客戶端瀏覽器提出一個請求;
(2)、伺服器收到客戶端瀏覽器的請求,進行分析處理;
(3)、伺服器將運行處理的結果返回給客戶端瀏覽器。通常一個伺服器需要向多個客戶端提供服務,因此對伺服器來說,還需要考慮如何有效地處理多個客戶端的請求。B / S系統(瀏覽器和伺服器結構)一般採用HTTP協議,伺服器端的數據發生更新時不會主動發送到客戶端的瀏覽器,需要客戶端主動地去請求才能獲得新數據。通常的解決方案是客戶端瀏覽器定時向伺服器發送請求來進行更新,但是這種方式可能會造成一定的時間誤差。在電力計量業務生產調度平臺中,設備將其狀態信息實時發送到伺服器上,伺服器收到客戶端瀏覽器的定時請求後將獲得的設備狀態信息發送到瀏覽器上,由於電力計量業務生產調度平臺中的實時性要求較高,因此這種方法不合適。另外,伺服器沒有數據更新時客戶端瀏覽器仍然會發出獲取數據的請求,這樣就加重了伺服器和網絡傳輸的負擔。
發明內容
本發明的目的是提供一種用在電力計量業務生產調度平臺中使用的Web實時數據主動推送方法,伺服器的數據更新可主動推送到瀏覽器,能夠加強客戶端瀏覽器數據的實時性。本發明採用下述技術方案一種Web實時數據主動推送方法,包括以下步驟
(1)、客戶端瀏覽器向伺服器請求監控頁面瀏覽器通過HTTP協議向伺服器調用監控頁面,伺服器將監控頁面返回給瀏覽器;
(2)、客戶端瀏覽器接收伺服器返回的監控頁面後進行加載監控頁面,同時加載Flex 控制項;
(3),Flex控制項綁定客戶端PC的Socket通訊埠,等待伺服器的連接;
(4)、Flex控制項主動通過Socket連接伺服器,告知自身已就緒,可以接收伺服器的推送數據;
(5)、伺服器收到Flex控制項發送的告知信息後,將告知信息放到伺服器的通知列表裡;
(6)、若伺服器數據發生更新時,伺服器將新數據主動發送到通知列表的每個Flex控制項上,則Flex控制項將信息反饋到客戶端瀏覽器上;若伺服器數據沒有發生更新,則繼續等待伺服器數據發生更新。所述步驟(4)的Flex控制項告知自身已就緒的內容包括Flex控制項的編號、當前所在PC的IP位址、等待的埠。所述的步驟(4)定期執行一次。所述步驟(6)中伺服器將新數據主動發送到通知列表的每個Flex控制項上的具體步驟如下(a)、伺服器根據Flex控制項的告知信息,找到Flex控制項的IP位址與等待的埠 ; (b)、伺服器主動發起Socket連接,若連接成功後將新數據發送到對應的Flex控制項上,然後斷開連接,然後繼續等待伺服器數據發生更新;若連接不成功,則嘗試進行多次連接,如果仍然連接不成功,則將此Flex控制項從通知列表中刪除,然後繼續等待伺服器數據發生更新。本發明所述的用於電力計量業務生產調度平臺的Web實時數據主動推送方法,是通過在客戶端瀏覽器中加載Flex控制項來實現。當伺服器數據發生更新時可實時將最新數據通過Socket推送到客戶端瀏覽器的Flex控制項,加強了客戶端瀏覽器數據的實時性,減少了伺服器和網絡的壓力;採用Flex控制項可支持多種瀏覽器;利用Flex控制項定時告知和伺服器檢測連接兩種技術保證數據不會漏報和多報,非常適合用於電力計量業務生產調度平臺的數據實時傳送。
圖1為本發明的原理圖; 圖2為本發明的工作流程圖。
具體實施例方式如圖1所示,本發明涉及到3個相互協同的部分設備、伺服器和客戶端瀏覽器,採用在客戶端瀏覽器上加載Flex控制項從而在B/S系統中使得瀏覽器與伺服器建立Socket連接,這樣就可以利用Flex控制項作為中間層來連接客戶端瀏覽器上的Web頁面和伺服器端來進行Socket通信,客戶端瀏覽器上的Flex控制項與伺服器可以相互發送數據,互相控制和調用,從而實現伺服器主動推送更新數據的目的。因此當設備將其狀態信息實時發送到伺服器上,伺服器就將獲得的狀態信息主動發送到客戶端瀏覽器上。除此之外,客戶端瀏覽器也可以通過Flex控制項主動向伺服器請求信息。如圖2所示,本發明的工作流程具體步驟如下所述
(1)、客戶端瀏覽器向伺服器請求監控頁面瀏覽器通過HTTP協議向伺服器調用監控頁面,伺服器將監控頁面返回給瀏覽器;
(2)、客戶端瀏覽器接收伺服器返回的監控頁面後進行加載監控頁面,同時加載Flex 控制項;Flex控制項是Macromedia公司提出的一種富客戶端技術,可由瀏覽器中的Flash插件進行加載和運行;目前,大約99. 8%的瀏覽器均可運行Flash,即可以運行Flex控制項;在本發明中,當瀏覽器接收到伺服器返回的監控頁面時,加載此監控頁面,此監控頁面中包括 Flex控制項,瀏覽器在加載監控頁面時同時也加載Flex控制項;
(3)、Flex控制項綁定客戶端PC的Socket通訊埠,等待伺服器的連接;Flex控制項調用其關聯的Applet組件,通過此組件綁定客戶端PC的Socket埠 ;
(4)、Flex控制項主動通過Socket連接伺服器,告知自身已就緒,可以接收伺服器的推送數據;所述告知自身已就緒的內容包括Flex控制項的編號、當前所在PC的IP位址、等待的埠 ;此步驟定期執行一次,即相當於告知伺服器本Flex控制項仍然在線;
(5)、伺服器收到Flex控制項發送的告知信息後,將告知信息放到伺服器的通知列表裡; 通知列表裡維護了多個Flex控制項信息,當伺服器有數據更新時,將會一一通知這些Flex控制項;
(6)、若伺服器數據發生更新時,伺服器將新數據主動發送到通知列表的每個Flex控制項上(a)、首先伺服器根據Flex控制項的告知信息,找到Flex控制項的IP位址與等待的埠 ; (b)、伺服器主動發起Socket連接,若連接成功後將新數據發送到對應的Flex控制項上,然後斷開連接,然後繼續等待伺服器數據發生更新;若連接不成功,則嘗試進行多次連接,如果仍然連接不成功,則將此Flex控制項從通知列表中刪除,然後繼續等待伺服器數據發生更新;
若伺服器數據沒有發生更新,則繼續等待伺服器數據發生更新。
權利要求
1.一種Web實時數據主動推送方法,其特徵在於包括以下步驟(1)、客戶端瀏覽器向伺服器請求監控頁面瀏覽器通過HTTP協議向伺服器調用監控頁面,伺服器將監控頁面返回給瀏覽器;(2)、客戶端瀏覽器接收伺服器返回的監控頁面後進行加載監控頁面,同時加載Flex 控制項;(3),Flex控制項綁定客戶端PC的Socket通訊埠,等待伺服器的連接;(4)、Flex控制項主動通過Socket連接伺服器,告知自身已就緒,可以接收伺服器的推送數據;(5)、伺服器收到Flex控制項發送的告知信息後,將告知信息放到伺服器的通知列表裡;(6)、若伺服器數據發生更新時,伺服器將新數據主動發送到通知列表的每個Flex控制項上,則Flex控制項將信息反饋到客戶端瀏覽器上;若伺服器數據沒有發生更新,則繼續等待伺服器數據發生更新。
2.根據權利要求1所述的Web實時數據主動推送方法,其特徵在於所述步驟(4)的 Flex控制項告知自身已就緒的內容包括Flex控制項的編號、當前所在PC的IP位址、等待的端
3.根據權利要求2所述的Web實時數據主動推送方法,其特徵在於所述的步驟(4)定期執行一次。
4.根據權利要求1或2或3所述的Web實時數據主動推送方法,其特徵在於所述步驟(6)中伺服器將新數據主動發送到通知列表的每個Flex控制項上的具體步驟如下(a)、 伺服器根據Flex控制項的告知信息,找到Flex控制項的IP位址與等待的埠 ;(b)、伺服器主動發起Socket連接,若連接成功後將新數據發送到對應的Flex控制項上,然後斷開連接,然後繼續等待伺服器數據發生更新;若連接不成功,則嘗試進行多次連接,如果仍然連接不成功,則將此Flex控制項從通知列表中刪除,然後繼續等待伺服器數據發生更新。
全文摘要
本發明公開了一種Web實時數據主動推送方法,採用在客戶端瀏覽器上加載Flex控制項從而在B/S系統中使得瀏覽器與伺服器建立Socket連接,這樣就可以利用Flex控制項作為中間層來連接客戶端瀏覽器上的Web頁面和伺服器端進行Socket通信,客戶端瀏覽器上的Flex控制項與伺服器可以相互發送數據,互相控制和調用,從而實現伺服器主動推送更新數據的目的。當伺服器數據發生更新時可實時將最新數據通過Socket推送到客戶端瀏覽器Flex控制項,加強了客戶端瀏覽器數據的實時性,減少了伺服器和網絡的壓力。
文檔編號H04L29/06GK102333128SQ20111033628
公開日2012年1月25日 申請日期2011年10月31日 優先權日2011年10月31日
發明者丁濤, 蘭濤, 孟凱, 康吉全, 徐二強, 曹益陸, 李去病, 李錚, 楊建龍, 楊進, 武宏波, 王雍, 郝中傑 申請人:河南省電力公司計量中心, 河南騰龍信息工程有限公司