新四季網

實時數據更新方法、裝置和系統與流程

2023-04-29 13:58:11 2


本發明涉及計算機領域,具體涉及一種實時數據更新方法、裝置和系統。



背景技術:

隨著網絡的發展,網絡資源也越來越多,很多服務都會布置在應用伺服器上,供用戶終端訪問網絡資源。比如火車票訂票服務、飛機票訂票服務、或者路況服務、或者股票服務等。在實際應用中,上述應用服務具備一定實時性,如到當前時刻某個車次還剩多少車票,當前時刻股票走勢,當前時刻的路況等。

在先技術中,客戶端需要不斷刷新頁面,以發送請求到應用服務所在伺服器,以獲取其需要的實時數據。但是該過程中,伺服器要維護各個客戶端的狀態,如維護客戶端獲取到了哪一時刻的實時數據的狀態,然後在該客戶端下次訪問時,將該時刻之後的實時數據返回給客戶端,如此,伺服器需要維護大量的狀態,佔用相當多的資源,影響伺服器性能。另外,對於客戶端來說,由於需要頻繁刷新頁面,對獲取到的新的實時數據進行再渲染,也會佔用過多客戶端資源,在刷新到一定次數之後,會導致客戶端卡頓的現象,從而影響用戶對客戶端的使用。



技術實現要素:

鑑於上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的實時數據更新裝置和相應的實時數據更新方法。

依據本發明的一個方面,本發明公開了一種實時數據更新方法,包括:

獲取應用服務提供的實時數據;

對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消 息;

由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

優選地,所述應用服務包括:火車票訂票服務、和/或飛機票訂票服務、和/或者路況服務、和/或者股票服務。

優選地,當所述應用服務為火車票訂票服務時,所述指定對象包括至少一個車次信息;

當所述應用服務為飛機票訂票服務時,所述指定對象包括至少一個航班信息;

當所述應用服務為路況服務時,所述指定對象包括至少一條指定路線信息;

當所述應用服務為股票服務時,所述指定對象包括至少一個一支股票信息。

優選地,在對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據之後,還包括:

根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

優選地,在根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息之後,還包括:

判斷客戶端是否是初始與第一訂閱者進行長連接;

如果客戶端是初始與第一訂閱者進行長連接,則所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示。

優選地,所述客戶端根據所述實時數據消息進行渲染展示包括:

根據所述實時數據消息,在應用盒子中渲染進行渲染展示。

優選地,所述根據所述實時數據,向各第一訂閱者發送實時數據消息包括:

根據所述實時數據,生成實時數據消息並將所述實時數據消息放入zmq隊列;

將所述zmq隊列中的實時數據消息,發送給各第一訂閱者loadjs。

優選地,所述長連接包括websocket連接。

依據本發明的另外一個方面,本發明公開了一種實時數據更新裝置,包括:

實時數據獲取模塊,適於獲取應用服務提供的實時數據;

實時數據對應提取模塊,適於對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

消息發送模塊,適於根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

消息轉發模塊,適於由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

優選地,所述應用服務包括:火車票訂票服務、飛機票訂票服務、或者路況服務、或者股票服務。

優選地,當所述應用服務為火車票訂票服務時,所述指定對象包括至少一個車次信息;

當所述應用服務為飛機票訂票服務時,所述指定對象包括至少一個航班信息;

當所述應用服務為路況服務時,所述指定對象包括至少一條指定路線信息;

當所述應用服務為股票服務時,所述指定對象包括至少一個一支股票信息。

優選地,在實時數據獲取模塊之後,還包括:

訂閱記錄模塊,適於根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

優選地,在實時數據對應提取模塊之後,還包括:

初始信息發送模塊,適於判斷客戶端是否是初始與第一訂閱者進行長連接;如果客戶端是初始與第一訂閱者進行長連接,則所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示。

優選地,所述客戶端包括:

第一展示模塊,適於根據所述實時數據消息,在應用盒子中渲染進行渲染展示。

優選地,所述消息發送模塊包括:

隊列放入子模塊,適於根據所述實時數據,生成實時數據消息並將所述實時數據消息放入zmq隊列;

實時數據消息發送模塊,適於將所述zmq隊列中的實時數據消息,發送給各第一訂閱者loadjs。

優選地,所述長連接包括websocket連接。

依據本發明的另外一個方面,本發明公開了一種實時數據更新系統,包括:

應用伺服器、監控伺服器和客戶端;

所述應用伺服器適於運行應用服務,並將應用服務提供的實時數據返回給監控伺服器;

所述監控伺服器包括:

實時數據獲取模塊,適於獲取應用服務提供的實時數據;

實時數據對應提取模塊,適於對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

消息發送模塊,適於根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

消息轉發模塊,適於由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;

所述客戶端適於根據所述實時數據消息進行渲染展示。

依據本發明的另外一個方面,本發明公開了一種設備,包括:

存儲器,適於存儲可執行代碼;

處理器,適於執行所述可執行代碼;所述可執行代碼執行以下步驟的方法:

獲取應用服務提供的實時數據;

對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

根據本發明的應用服務的實時數據更新方法和裝置,可以從各個應用伺服器獲取各個應用服務的實時數據,比如獲取火車票訂票服務或者飛機票訂票服務的實時訂票信息,路況服務的實時路況信息,股票服務的實時股票信息等,然後對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;再根據pub-sub(發布及訂閱)的方式,根據各指定對象的實時數據發布實時數據消息,然後將該實時數據消息發送給訂閱該應用服務各指定對象的各個第一訂閱者,並且由於本發明的客戶端與第一訂閱者長連接,那麼可再由第一訂閱者通過長連接將該實時數據消息轉發至與該第一訂閱者相應的客戶端,由此解決了伺服器側需要維護各個客戶端的大量狀態,導致伺服器資源佔用較多的問題,以及客戶端側需要頻繁刷新頁面以獲取新的實時數據,導致客戶端資源佔用較多、使客戶端出現卡頓現象的問題,取得了降低伺服器側維護的各個客戶端的狀態的數量,即可推送實時數據消息,減少對伺服器的資源佔用,以及使客戶端側不用頻繁刷新即可獲取到新的實時數據,減少對客戶端的資源佔用的有益效果。

上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它 目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。

附圖說明

通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對於本領域普通用戶將變得清楚明了。附圖僅用於示出優選實施方式的目的,而並不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:

圖1示出了根據本發明一個實施例的一種時數據更新方法的流程示意圖;

圖1A示出了根據本發明一個實施例的客戶端的應用盒子展示示例;

圖2示出了根據本發明另一個實施例的一種時數據更新方法的流程示意圖;

圖3示出了根據本發明另一個實施例的一種時數據更新裝置的結構示意圖;

圖4示出了根據本發明一個實施例的一種時數據更新裝置的結構示意圖;

圖5示出了根據本發明另一個實施例的一種時數據更新系統的結構示意圖;

圖6示出了根據本發明一個實施例的一種設備的結構示意圖。

具體實施方式

下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的用戶。

實施例一

參照圖1,其示出了本發明一種實時數據更新方法的流程示意圖,具體可以包括:

步驟110,獲取應用服務提供的實時數據;

在本發明實施例中,所述應用服務可包括火車票訂票服務、和/或飛機票訂票服務、和/或者路況服務、和/或者股票服務。

如果本發明實施例獲取一個應用服務提供的實時數據,則本發明實施例的步驟可以執行於應用服務所在的應用伺服器中,也可以執行獨立於應用伺服器的監控伺服器中。

如果本發明實施例獲取多個應用服務的提供的實時數據,如果該多個應用服務在一個應用伺服器中運行,則本發明實施例的步驟可以執行於應用服務所在的應用伺服器中,也可以執行獨立於應用伺服器的監控伺服器中。如果該多個應用服務在多個應用伺服器中運行,比如每個應用伺服器運行一個應用服務,則本發明實施例的步驟執行於監控伺服器中。

在實際中,當本發明實施例的步驟執行於監控伺服器中時,前端的應用伺服器中可以設置SDK(Software Development Kit,軟體開發工具包),該SDK提供了向監控伺服器傳輸實時數據的接口。在應用服務運行的時候,當應用伺服器監控到其應用服務出現新的實時數據,比如實時路況數據,則可以調用相應接口將該實時數據傳輸給監控伺服器,從而監控伺服器則獲取到了各個應用服務的實時數據。

步驟120,對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

在本發明實施例中,對於應用服務,不同的數據可以需求的實時數據不同,其訂閱的指定對象可能不同。如火車票訂票服務,用戶A可能需要的是某個時間的車次A的票務信息,而用戶B可能需要的是某個時間的車次B的票務信息。

因此,對於應用服務的所有實時數據,對應不同的第一訂閱者,本發明實施例可以從該所有實時數據中,提取該第一訂閱者需求的實時數據。

需要說明的是,前述指定對象在不同應用服務中對應不同的對象:

(1)當所述應用服務為火車票訂票服務時,所述指定對象包括至少一個車次信息;

上述車次信息例如時間信息+車次,如(2015.10.1,Z41);又如時間信 息+始發站+終點站,如(2015.10.1,北京-西安)。

如此,在火車票訂票服務每次刷新其車票餘票後,對於各個訂票信息,本發明實施例則可以獲取相應的餘票。

(2)當所述應用服務為飛機票訂票服務時,所述指定對象包括至少一個航班信息;

上述航班信息例如時間信息+航班號,如(2015.10.1,CZ6522);又如時間信息+始發站+終點站,如(2015.10.1,北京-西安)。

如此,在飛機票訂票服務每次刷新其每個航班的餘票餘量後,對於各個訂票信息,本發明實施例則可以獲取相應的餘量。

(3)當所述應用服務為路況服務時,所述指定對象包括至少一條指定路線信息;

上述指定路線信息比如起點+終點。當然,起點+終點之間可能有多條路線,每條路線可能有多個路段,本發明實施例可以選擇N條路線,然後伺服器則可以將該路線拆分為路段,方便獲取每個路段的路況信息。該路況信息比如該路段的擁堵程度,如順暢、較堵、擁堵等。

(4)當所述應用服務為股票服務時,所述指定對象包括至少一個一支股票信息。

上述股票信息比如股票代碼、股票名稱等。

本發明實施例中,用戶的客戶端需要首先連接到前述執行本發明實施例步驟的監控伺服器或者應用伺服器,然後該監控伺服器或者應用伺服器為該客戶端分配一個第一訂閱者。則用戶可以通過客戶端發送將要訂閱的指定對象到第一訂閱者,第一訂閱者則可以向監控伺服器或者應用伺服器中的發布者訂閱該指定對象對應的各種消息。

需要說明書的是,在實際應用中,在執行本發明實施例步驟的監控伺服器或者應用伺服器中,可以將第一進程作為發布者,將另外的各個第二進程作為該發布者的第一訂閱者,每個第二進程就是一個第一訂閱者。

客戶端向前述執行本發明實施例的步驟的監控伺服器或者應用伺服器發送連接請求時,監控伺服器則為其啟動第一訂閱者進程,該第一訂閱者進 程訂閱第一進程的對應前述指定對象的實時數據消息,並且由該第一訂閱者負責與該客戶端進行通信。

可以理解,本發明所述步驟120之前,客戶端需要首先與第一訂閱者建立長連接。

步驟130,根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

可以理解,在本發明實施例中,可能有很多用戶需要訂閱的指定對象是一樣的,那麼這些用戶的客戶端對應的第一訂閱者可以訂閱同樣的實時數據消息。比如用戶A、B、C需要訂閱指定對象L1、L2、L3,用戶E、F、G需要訂閱M1、M2、M3,那麼對應用戶A、B、C的第一訂閱者則訂閱指定對象L1、L2、L3的實時數據消息。對應用戶E、F、G的第一訂閱者則訂閱指定對象M1、M2、M3的實時數據消息。

在本發明實施例中,對於各指定對象的實時數據,一起生成一條實時數據。對於第一進程可以根據前述實時數據,生成實時數據消息,並作為發布者發布該實時數據消息。其中,發布該實時數據消息時,可將該實時數據消息send(推送)給各個第一訂閱者,各個第一訂閱者則可以receive(接收)該實時數據消息。

可以理解,在本發明實施例中,在前述伺服器中記錄了各個第一訂閱者的訂閱所針對的各指定對象,然後在步驟120中提取指定對象的數據時,根據各個指定對象的組合生成實時數據消息後,可以根據上述記錄,對應通知各個對應這些指定對象的第一訂閱者。

優選地,步驟130包括:

子步驟131,根據所述實時數據,生成實時數據消息並將所述實時數據消息放入zmq隊列;

在本發明實施例中,對於從應用伺服器中獲取的各服務的實時數據,首先可針對其生成實時數據消息。

在實際應用中,對於支股票信息的實時數據,可以將指定時間段的所有實時數據,統一生成實時數據消息。比如對3秒內獲取的各個應用伺服器的 實時數據進行按時間序列整合,生成實時數據消息。進一步的如,從0秒開始,監控伺服器開始受到應用伺服器發送的實時數據,那麼到3秒時,監控伺服器將0-3秒收到的實時數據進行整合,生成實時數據消息;然後到6秒時,監控伺服器將3-6秒受到的實時數據進行整合,生成實時數據消息,以此類推。

對於車次信息、航班信息、指定路線信息的實時數據,本發明可以不用對指定時間段的所有實時數據進行整合,直接採用最新的實時數據即可。

然後,本發明實施例將實時數據消息放入zmq隊列中,zmq(ZeroMQ)是一個簡單好用的傳輸層,像框架一樣的一個socket library,他使得Socket編程更加簡單、簡潔和性能更高。是一個消息處理隊列庫,可在多個進程、內核和主機盒之間彈性伸縮,其在Socket API之上做了一層封裝,將網絡通訊、進程通訊和進程通訊抽象為統一的API接口。通過zmq可是實現一對多的pub-sub方式,一個發布者發布的消息可以推送給多個訂閱者。

在本發明實施例中各個第一訂閱者與zmq隊列可通過socket(套接字)連接。

子步驟132,將所述zmq隊列中的實時數據消息,發送給各第一訂閱者loadjs。

在本發明實施例中,第一訂閱者可以為loadjs,該loadjs可以實現websocket長連接,並且能以訂閱者的身份訂閱zmq隊列中的實時數據消息,還以中間者的身份,將獲得的實時數據消息轉發給客戶端。該loadjs提供了zmq的一個庫,可以執行訂閱zmq隊列所在進程的操作,訂閱完成後可以提供一個埠,將其獲取到的實時數據消息放入該埠,然後通過該埠將實時數據消息轉發至客戶端。

在本發明實施例中,那麼對於zmq隊列首部的實時數據消息,則可以發送給各個第一訂閱者。在實際應用中,監控伺服器的第一進程可以記錄在線的第一訂閱者的個數,然後將發布的實時數據消息推送給各個第一訂閱者時,如果在指定時間段內比如5秒內,無論是否所有第一訂閱者都接收到了該實時數據消息,該實時數據則可以從zmq隊列中移出,然後發布zmq隊 列中的下一個實時數據消息。

步驟140,由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

當第一訂閱者獲取到實時數據消息後,則可以通過長連接將該實時數據消息轉發給予該第一訂閱者連接的客戶端。然後,客戶端即可根據所述實時數據消息進行渲染展示。

當然,在實際應用中,客戶端可以從該實時數據消息中提取各實時數據,然後針對這些實時數據進行渲染。比如對於車次信息的實時數據消息,可以從中提取實時數據:(日期,車次,餘票),如(2015.10.1,Z41,硬臥餘票20,軟臥餘票30,高級軟臥餘票40),(2015.10.1,G58,二等座餘票20,一等座餘票50,商務座餘票60)等,客戶端可以將上述信息進行並列展示。對於股票信息的實時數據消息,可以從中提取實時數據:(時刻,股票代碼,股票名稱,漲幅),如(9:31:00,601766,中國中車,+1.50%),(9:31:01,601766,中國中車,+1.00%),(9:31:01,601766,中國中車,+1.67%),那麼客戶端可以將上述股票的信息按時間序列進行展示,並且可以渲染為曲線圖。

優選地,所述長連接包括websocket連接。

WebSocket長連接是HTML5(Hypertext Markup Language5,超文本標記語言5)一種新的協議,它實現了瀏覽器與伺服器全雙工通信(full-duplex)。採用WebSocket長連接,瀏覽器和伺服器只需要要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。

在本發明實施例中,客戶端可以採用Higcharts工具對實時數據消息進行渲染。其中,Higcharts是兼容絕大多數瀏覽器的純js(javascript,腳本)圖表庫。

優選地,所述客戶端根據所述實時數據消息進行渲染展示包括:

子步驟141,根據所述實時數據消息,在應用盒子中渲染進行渲染展示。

在本發明實施例中,火車票訂票服務的票務信息、飛機票訂票服務的票 務信息、路況服務的擁堵信息、股票服務漲幅曲線,都可以在應用盒子中進行渲染展示。

所述應用盒子(onebox)是一種在瀏覽器網頁中展示的技術,其可以調用java腳本渲染根據預定模板對數據進行渲染。如圖1A,其為在網頁的應用盒子中展示票務信息的示例,圖1A中,在網頁S10中的應用盒子S20中。展示了2015.10.1日,Z41的硬臥餘票20張,軟臥餘票30張,高級軟臥40張。

本發明實施例的前述過程,在執行本發明實施例的步驟的伺服器側採用pub-sub的方式,伺服器側收集到實時數據後,對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據,然後主動將對應各第一訂閱者的實時數據消息推送給第一訂閱者,然後再由第一訂閱者通過長連接轉發給客戶端。由此解決了伺服器側需要維護各個客戶端的大量狀態,導致伺服器資源佔用較多的問題,以及客戶端側需要頻繁刷新頁面以獲取新的實時數據,導致客戶端資源佔用較多、使客戶端出現卡頓現象的問題,取得了降低伺服器側維護的各個客戶端的狀態的數量,即可推送實時數據消息,減少對伺服器的資源佔用,以及使客戶端側不用頻繁刷新即可被動獲取到新的實時數據,減少對客戶端的資源佔用的有益效果。

實施例二

參照圖2,其示出了本發明一種實時數據更新方法的流程示意圖,具體可以包括:

步驟210,獲取應用服務提供的實時數據;

步驟220,對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

步驟230,根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

在本發明實施例中,在監控伺服器還可以設置一個的第三進程,該第三進程作為第二訂閱者以訂閱新出現的實時數據消息,其可以從監控系統啟動時就啟動。然後,當監控伺服器的第一進程獲取到實時數據,並生成實時數 據消息後,可以將實時數據消息推送給該第二訂閱者。然後第二訂閱者獲取到該項目消息後,即可通過redis進行記錄,其記錄第一時間周期內的各個服務的實時數據消息,比如記錄最近10分鐘的實時數據消息。其中Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API(Application Program Interface,應用程式接口)。

當然,在本發明實施例中,第二訂閱者記錄各個實時數據消息時,可以記錄該實時數據消息對應的各指定對象的組合,以備後續新的客戶端連接到伺服器時,根據客戶端需求的指定對象的組合,將相應的歷史實時數據消息轉發給客戶端。

在實際應用中,上述實時數據消息會寫入zmq隊列中,然後從該zmq隊列中將實時數據消息推送給第二訂閱者。

步驟240,判斷客戶端是否是初始與第一訂閱者進行長連接;如果客戶端是初始與第一訂閱者進行長連接,則進入步驟250;如果客戶端不是初始與第一訂閱者進行長連接,則進入步驟260;

步驟250,所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示。

在本發明實施例中,當一個未連接的客戶端的連接請求發送到監控伺服器時,監控伺服器則可以為其加載一個第一訂閱者,如前述loadjs,然後由loadjs維護與該客戶端的長連接。而由於客戶端是初始連接到第一訂閱者,其還未收到過任何實時數據消息,為了方便用戶觀看實時數據消息的狀態,本發明實施例則第一訂閱者可以獲取當前初始連結時刻之前的第一時間周期內與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端,再將其轉發給客戶端。比如第二訂閱者記錄的指定對象A、B、C的實時數據消息,而新接入的客戶端的第一訂閱者訂閱了指定對象A、B、C的實時數據消息,那麼第二訂閱者可將指定對象A、B、C的歷史的實時 數據消息轉發給該客戶端。

該客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示

比如客戶端A初始接入的時刻為12:00:00,那麼客戶端A對應的第一訂閱者A,可以從第二訂閱者的記錄中獲取11:50:00-12:00:00內的實時數據消息,然後將該一系列的實時數據消息轉發給客戶端A。那麼客戶端A即可11:50:00-12:00:00內的實時數據消息渲染為所述各指定對象的渲染圖。

當然,如果客戶端不是初始與第一訂閱者進行長連接,則客戶端已經獲取過實時數據消息,只需要最新的實時數據消息即可。那麼可以直接進入步驟260,通步驟260獲取最新的實時數據消息。

步驟260,根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

步驟270,由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

本發明實施例中,尤其對於股票服務等需要以曲線方式展示的應用服務具有較佳效果,更方便用戶查看。

本發明實施例中,在執行本發明實施例的步驟的伺服器側採用pub-sub的方式,伺服器側收集到實時數據後,對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據,然後主動將對應各第一訂閱者的實時數據消息推送給第一訂閱者,然後再由第一訂閱者通過長連接轉發給客戶端。使客戶端被動接收實時數據消息,不用刷新網頁以主動發送HTTP請求去獲取實時數據消息,從而可以降低客戶端的資源佔用,避免因頻繁刷新網頁去發送HTTP請求而產生的卡頓現象。也降低伺服器維護客戶端展示的各個服務的狀態的數量,直接將實時數據消息推送給客戶端即可,邏輯簡單,方便系統維護,並且可以降低系統的資源佔用。

再者,對於初始接入第一訂閱者的客戶端,可以由第一訂閱者從第二訂閱者的記錄中獲取最近一個第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端,客戶端對這些實時數據消息 進行展示後,可以使其可以在歷史數據的狀態圖的基礎上,動態的展示各服務的新的數據,方便用戶查看。

實施例三

參照圖3,其示出了本發明一種實時數據更新裝置的結構示意圖,具體可以包括:

實時數據獲取模塊310,適於獲取應用服務提供的實時數據;

實時數據對應提取模塊320,適於對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

消息發送模塊330,適於根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

消息轉發模塊340,適於由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

優選地,所述應用服務包括:火車票訂票服務、飛機票訂票服務、或者路況服務、或者股票服務。

優選地,當所述應用服務為火車票訂票服務時,所述指定對象包括至少一個車次信息;

當所述應用服務為飛機票訂票服務時,所述指定對象包括至少一個航班信息;

當所述應用服務為路況服務時,所述指定對象包括至少一條指定路線信息;

當所述應用服務為股票服務時,所述指定對象包括至少一個一支股票信息。

優選地,在實時數據獲取模塊之後,還包括:

訂閱記錄模塊,適於根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

優選地,在實時數據對應提取模塊之後,還包括:

初始信息發送模塊,適於判斷客戶端是否是初始與第一訂閱者進行長連 接;如果客戶端是初始與第一訂閱者進行長連接,則所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示。

優選地,所述客戶端包括:

第一展示模塊,適於根據所述實時數據消息,在應用盒子中渲染進行渲染展示。

優選地,所述消息發送模塊包括:

隊列放入子模塊,適於根據所述實時數據,生成實時數據消息並將所述實時數據消息放入zmq隊列;

實時數據消息發送模塊,適於將所述zmq隊列中的實時數據消息,發送給各第一訂閱者loadjs。

優選地,所述長連接包括websocket連接。

實施例四

參照圖4,其示出了本發明一種實時數據更新裝置的結構示意圖,具體可以包括:

實時數據獲取模塊410,適於獲取應用服務提供的實時數據;

實時數據對應提取模塊420,適於對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

訂閱記錄模塊430,適於根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

初始信息發送模塊440,適於判斷客戶端是否是初始與第一訂閱者進行長連接;如果客戶端是初始與第一訂閱者進行長連接,則所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示。如果客戶端不是初始與第一訂閱者進行長連接,則進入消息發送模塊450;

消息發送模塊450,適於根據各指定對象的實時數據,向相應的各第一 訂閱者發送實時數據消息;

消息轉發模塊460,適於由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

實施例五

參照圖5,其示出了本發明一種實時數據更新系統的結構示意圖,具體可以包括:

應用伺服器510、監控伺服器520和客戶端530;

所述應用伺服器510適於運行應用服務,並將應用服務提供的實時數據返回給監控伺服器;

所述監控伺服器520包括:

實時數據獲取模塊521,適於獲取應用服務提供的實時數據;

實時數據對應提取模塊522,適於對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

消息發送模塊523,適於根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

消息轉發模塊524,適於由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;

所述客戶端530適於根據所述實時數據消息進行渲染展示。

當然,本發明實施例的應用伺服器可以為多個,客戶端也可以為多個。

優選地,在監控伺服器中,在實時數據獲取模塊之後,還包括:

訂閱記錄模塊,適於根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

優選地,在監控伺服器中,在實時數據對應提取模塊之後,還包括:

初始信息發送模塊,適於判斷客戶端是否是初始與第一訂閱者進行長連接;如果客戶端是初始與第一訂閱者進行長連接,則所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各 服務的實時數據消息進行渲染展示。

優選地,所述客戶端包括:

第一展示模塊,適於根據所述實時數據消息,在應用盒子中渲染進行渲染展示。

優選地,在監控伺服器中,所述消息發送模塊包括:

隊列放入子模塊,適於根據所述實時數據,生成實時數據消息並將所述實時數據消息放入zmq隊列;

實時數據消息發送模塊,適於將所述zmq隊列中的實時數據消息,發送給各第一訂閱者loadjs。

優選地,所述長連接包括websocket連接。

在本發明實施例中,由監控伺服器從各個應用伺服器中獲取實時數據,可以方便的與第三方的應用伺服器的接口進行對接,系統架構靈活,並且降低應用伺服器的資源消耗。

實施例六

參照圖6,其示出了本發明實施例的一種設備的結構示意圖,所述設備600具體可以包括:

存儲器610,適於存儲可執行代碼;

處理器620,適於執行所述可執行代碼;所述可執行代碼執行以下步驟的方法:

獲取應用服務提供的實時數據;

對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

在本發明實施例中該種設備可以為監控伺服器,其中所述可執行代碼還可以包括可在監控伺服器側執行的步驟。

對應於伺服器的客戶端中,也可包括存儲器和處理器,存儲器存儲可執行代碼,處理器執行所述可執行代碼,所述可執行代碼執行以下的步驟的方法:戶端根據所述實時數據消息進行渲染展示。

當然,客戶端側的可執行代碼還可以包括其他可以在客戶端執行的步驟。

在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基於在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定程式語言。應當明白,可以利用各種程式語言實現在此描述的本發明的內容,並且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。

在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。

類似地,應當理解,為了精簡本公開並幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特徵有時被一起分組到單個實施例、圖、或者對其的描述中。然而,並不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特徵更多的特徵。更確切地說,如下面的權利要求書所反映的那樣,發明方面在於少於前面公開的單個實施例的所有特徵。因此,遵循具體實施方式的權利要求書由此明確地併入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。

本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變並且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特徵和/或過程或者單元中的至少一些是相互排斥之外,可以採用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特徵以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴 隨的權利要求、摘要和附圖)中公開的每個特徵可以由提供相同、等同或相似目的的替代特徵來代替。

此外,本領域的技術人員能夠理解,儘管在此所述的一些實施例包括其它實施例中所包括的某些特徵而不是其它特徵,但是不同實施例的特徵的組合意味著處於本發明的範圍之內並且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。

本發明的各個部件實施例可以以硬體實現,或者以在一個或者多個處理器上運行的軟體模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數位訊號處理器(DSP)來實現根據本發明實施例的實時數據更新設備中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用於執行這裡所描述的方法的一部分或者全部的設備或者裝置程序(例如,電腦程式和電腦程式產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從網際網路網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。

應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,並且本領域技術人員在不脫離所附權利要求的範圍的情況下可設計出替換實施例。在權利要求中,不應將位於括號之間的任何參考符號構造成對權利要求的限制。單詞「包含」不排除存在未列在權利要求中的元件或步驟。位於元件之前的單詞「一」或「一個」不排除存在多個這樣的元件。本發明可以藉助於包括有若干不同元件的硬體以及藉助於適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬體項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。

本發明公開了A1、一種實時數據更新方法,包括:

獲取應用服務提供的實時數據;

對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據 中提取各指定對象的實時數據;

根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

A2、根據A1所述的方法,所述應用服務包括:火車票訂票服務、和/或飛機票訂票服務、和/或者路況服務、和/或者股票服務。

A3、根據A2所述的方法,

當所述應用服務為火車票訂票服務時,所述指定對象包括至少一個車次信息;

當所述應用服務為飛機票訂票服務時,所述指定對象包括至少一個航班信息;

當所述應用服務為路況服務時,所述指定對象包括至少一條指定路線信息;

當所述應用服務為股票服務時,所述指定對象包括至少一個一支股票信息。

A4、根據A1所述的方法,在對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據之後,還包括:

根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

A5、根據A4所述的方法,在根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息之後,還包括:

判斷客戶端是否是初始與第一訂閱者進行長連接;

如果客戶端是初始與第一訂閱者進行長連接,則所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示。

A6、根據A1所述的方法,所述客戶端根據所述實時數據消息進行渲染展示包括:

根據所述實時數據消息,在應用盒子中渲染進行渲染展示。

A7、根據A1所述的方法,所述根據所述實時數據,向各第一訂閱者發送實時數據消息包括:

根據所述實時數據,生成實時數據消息並將所述實時數據消息放入zmq隊列;

將所述zmq隊列中的實時數據消息,發送給各第一訂閱者loadjs。

A8、根據A1或A7所述的方法,所述長連接包括websocket連接。

本發明公開了B9、一種實時數據更新裝置,包括:

實時數據獲取模塊,適於獲取應用服務提供的實時數據;

實時數據對應提取模塊,適於對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

消息發送模塊,適於根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

消息轉發模塊,適於由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

B10、根據B9所述的裝置,所述應用服務包括:火車票訂票服務、飛機票訂票服務、或者路況服務、或者股票服務。

B11、根據B10所述的裝置,

當所述應用服務為火車票訂票服務時,所述指定對象包括至少一個車次信息;

當所述應用服務為飛機票訂票服務時,所述指定對象包括至少一個航班信息;

當所述應用服務為路況服務時,所述指定對象包括至少一條指定路線信息;

當所述應用服務為股票服務時,所述指定對象包括至少一個一支股票信 息。

B12、根據B9所述的裝置,在實時數據獲取模塊之後,還包括:

訂閱記錄模塊,適於根據所述實時數據,向各第二訂閱者的發送實時數據消息;所述第二訂閱者記錄第一時間周期內各服務的實時數據消息。

B13、根據B12所述的裝置,在實時數據對應提取模塊之後,還包括:

初始信息發送模塊,適於判斷客戶端是否是初始與第一訂閱者進行長連接;如果客戶端是初始與第一訂閱者進行長連接,則所述第一訂閱者從所述第二訂閱者處獲取第一時間周期內,與所述第一訂閱者所需求的各指定對象相匹配的實時數據消息轉發給客戶端;所述客戶端將所述第一時間周期內各服務的實時數據消息進行渲染展示。

B14、根據B9所述的裝置,所述客戶端包括:

第一展示模塊,適於根據所述實時數據消息,在應用盒子中渲染進行渲染展示。

B15、根據B9所述的裝置,所述消息發送模塊包括:

隊列放入子模塊,適於根據所述實時數據,生成實時數據消息並將所述實時數據消息放入zmq隊列;

實時數據消息發送模塊,適於將所述zmq隊列中的實時數據消息,發送給各第一訂閱者loadjs。

B16、根據B9或B15所述的裝置,所述長連接包括websocket連接。

本發明公開了C17、一種實時數據更新系統,包括:

應用伺服器、監控伺服器和客戶端;

所述應用伺服器適於運行應用服務,並將應用服務提供的實時數據返回給監控伺服器;

所述監控伺服器包括:

實時數據獲取模塊,適於獲取應用服務提供的實時數據;

實時數據對應提取模塊,適於對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

消息發送模塊,適於根據各指定對象的實時數據,向相應的各第一訂閱 者發送實時數據消息;

消息轉發模塊,適於由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;

所述客戶端適於根據所述實時數據消息進行渲染展示。

本發明公開了D18、一種設備,包括:

存儲器,適於存儲可執行代碼;

處理器,適於執行所述可執行代碼;所述可執行代碼執行以下步驟的方法:

獲取應用服務提供的實時數據;

對於各個第一訂閱者所針對的應用服務的各指定對象,從所述實時數據中提取各指定對象的實時數據;

根據各指定對象的實時數據,向相應的各第一訂閱者發送實時數據消息;

由所述第一訂閱者通過長連接將所述實時數據消息轉發給與所述訂閱者對應的客戶端;其中,所述客戶端根據所述實時數據消息進行渲染展示。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀