本發(fā)明屬于電力系統(tǒng)領(lǐng)域,涉及一種基于XMPP協(xié)議的跨節(jié)點(diǎn)通訊網(wǎng)絡(luò)請(qǐng)求方法。
背景技術(shù):
隨著電力系統(tǒng)的移動(dòng)互聯(lián)用戶數(shù)量越來(lái)越多,用戶量越來(lái)越大,用戶數(shù)呈現(xiàn)非線性增長(zhǎng),單一節(jié)點(diǎn)部署的方式在帶寬、硬件等資源上無(wú)法滿足日益增長(zhǎng)的需求,易產(chǎn)生故障,影響用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
為降低單一部署節(jié)點(diǎn)故障的影響范圍,分流即時(shí)通訊服務(wù)器的負(fù)荷和運(yùn)維壓力,本發(fā)明的目的是提供一種基于XMPP協(xié)議的跨節(jié)點(diǎn)通訊網(wǎng)絡(luò)請(qǐng)求方法,通過(guò)該方法實(shí)現(xiàn)在多個(gè)節(jié)點(diǎn)之間通過(guò)XMPP協(xié)議進(jìn)行安全穩(wěn)定的消息發(fā)送與接收。
本發(fā)明的目的通過(guò)以下技術(shù)方案實(shí)現(xiàn):
一種基于XMPP協(xié)議的跨節(jié)點(diǎn)通訊網(wǎng)絡(luò)請(qǐng)求方法,其特征在于該方法包括以下步驟:
1)定義信任域,對(duì)需傳送的即時(shí)消息進(jìn)行識(shí)別,只有來(lái)源于信任域服務(wù)器的即時(shí)消息,網(wǎng)絡(luò)請(qǐng)求才能被處理,信任域與IP地址進(jìn)行綁定,進(jìn)行校驗(yàn);
2)定義協(xié)議,協(xié)議采用HTTP2協(xié)議進(jìn)行通訊,通訊時(shí)在URL中增加隨機(jī)碼、校驗(yàn)值、時(shí)間戳信息,用于校驗(yàn)頭信息,確保來(lái)源信息的穩(wěn)定可靠;
3)定義消息格式,跨節(jié)點(diǎn)通訊消息比正常消息增加了crossdomain節(jié)點(diǎn)信息,由發(fā)送節(jié)點(diǎn)自動(dòng)添加,方便應(yīng)用識(shí)別跨節(jié)點(diǎn)消息與非跨節(jié)點(diǎn)消息;
4)跨節(jié)點(diǎn)消息通過(guò)互聯(lián)網(wǎng)進(jìn)行傳輸接收。
本發(fā)明中,跨節(jié)點(diǎn)消息通過(guò)互聯(lián)網(wǎng)進(jìn)行傳輸接收的性能優(yōu)化方法如下:
1)存離線消息,系統(tǒng)檢索用戶不在線后立即將消息存放到離線消息隊(duì)列,異步且批量保存到數(shù)據(jù)庫(kù)中;
2)檢索域,因?yàn)橛虮4嬖跀?shù)據(jù)庫(kù)中,每次發(fā)送消息需要查詢(xún)用戶所在域,因此建立用于與域的對(duì)應(yīng)關(guān)系,并進(jìn)行緩存處理,以便用戶任意進(jìn)行域信息切換;
3)傳輸優(yōu)化,正常HTTPS通訊需要握手、協(xié)調(diào)加密算法過(guò)程,時(shí)延較大,采用HTTP2批量發(fā)送消息報(bào)文,減少流量提高傳輸性能。
本發(fā)明實(shí)現(xiàn)即時(shí)通訊服務(wù)器多節(jié)點(diǎn)部署,減輕單一服務(wù)器的壓力,分散用戶的訪問(wèn)請(qǐng)求,滿足用戶需求。通過(guò)該方法實(shí)現(xiàn)在多個(gè)節(jié)點(diǎn)之間通過(guò)XMPP協(xié)議進(jìn)行安全穩(wěn)定的消息發(fā)送與接收。
附圖說(shuō)明
圖1是本發(fā)明的流程示意圖。
具體實(shí)施方式
一種基于XMPP協(xié)議的跨節(jié)點(diǎn)通訊網(wǎng)絡(luò)請(qǐng)求方法,包括以下步驟:
1)定義信任域,對(duì)需傳送的即時(shí)消息進(jìn)行識(shí)別,只有來(lái)源于信任域服務(wù)器的即時(shí)消息,網(wǎng)絡(luò)請(qǐng)求才能被處理,信任域與IP地址進(jìn)行綁定,進(jìn)行校驗(yàn)。
2)定義協(xié)議,協(xié)議采用HTTP2協(xié)議進(jìn)行通訊,通訊時(shí)在URL中增加隨機(jī)碼、校驗(yàn)值、時(shí)間戳信息,用于校驗(yàn)頭信息,確保來(lái)源信息的穩(wěn)定可靠。
3)定義消息格式,跨節(jié)點(diǎn)通訊消息比正常消息增加了crossdomain節(jié)點(diǎn)信息,由發(fā)送節(jié)點(diǎn)自動(dòng)添加,方便應(yīng)用識(shí)別跨節(jié)點(diǎn)消息與非跨節(jié)點(diǎn)消息。
4)因跨節(jié)點(diǎn)消息通過(guò)互聯(lián)網(wǎng)進(jìn)行傳輸代價(jià)大,所以提出對(duì)性能進(jìn)行優(yōu)化的幾種方法:
(1)存離線消息,系統(tǒng)檢索用戶不在線后立即將消息存放到離線消息隊(duì)列,異步且批量保存到數(shù)據(jù)庫(kù)中。
(2)檢索域,因?yàn)橛虮4嬖跀?shù)據(jù)庫(kù)中,每次發(fā)送消息需要查詢(xún)用戶所在域,因此建立用于與域的對(duì)應(yīng)關(guān)系,并進(jìn)行緩存處理,以便用戶可以任意進(jìn)行域信息切換。
(3)傳輸優(yōu)化,正常HTTPS通訊需要握手、協(xié)調(diào)加密算法過(guò)程,時(shí)延較大,因此采用HTTP2可以批量發(fā)送消息報(bào)文,減少流量提高傳輸性能。
實(shí)施例:
如圖1所示,節(jié)點(diǎn)1的用戶向節(jié)點(diǎn)2的用戶發(fā)送即時(shí)消息,步驟如下:
1.節(jié)點(diǎn)1用戶向他所在的節(jié)點(diǎn)服務(wù)發(fā)送即時(shí)消息,此消息采用XMPP協(xié)議進(jìn)行發(fā)送,比正常協(xié)議擴(kuò)展了crossdomain信息,主要在協(xié)議報(bào)文消息中添加<crossmain fromdomain=”” todomain=””>,以便應(yīng)用識(shí)別跨節(jié)點(diǎn)消息。
2.節(jié)點(diǎn)1的即時(shí)通訊服務(wù)收到節(jié)點(diǎn)1用戶的消息后,首先檢索接收方用戶所在的信任域,然后將信息以HTTP2協(xié)議的方式發(fā)送出去。
3.在消息報(bào)文中的URL頭信息中增加了隨機(jī)碼、校驗(yàn)值、時(shí)間戳信息。
4.節(jié)點(diǎn)2收到消息后,首先檢查接收方用戶是否在線,如不在線,則將消息發(fā)送到離線消息隊(duì)列,并且異步批量保存到節(jié)點(diǎn)數(shù)據(jù)庫(kù)中。如在線,則將消息推送給用戶。