送服務(wù)器將連接請求發(fā)送到業(yè)務(wù)服務(wù)器。
[0052]步驟202:ngx_lua模塊接收到連接請求后,從連接請求中提取出用戶密碼,并將連接請求轉(zhuǎn)換為socket格式并發(fā)送給業(yè)務(wù)服務(wù)器;
[0053]ngx_lua模塊通過其上運(yùn)行的自定義Iua腳本將消息轉(zhuǎn)成socket格式。
[0054]步驟203:業(yè)務(wù)服務(wù)器接收到連接請求后,為客戶端分配用戶標(biāo)識(UID),通過轉(zhuǎn)發(fā)服務(wù)器將UID發(fā)送給推送服務(wù)器;
[0055]業(yè)務(wù)服務(wù)器在為客戶端分配UID后,向轉(zhuǎn)發(fā)服務(wù)器發(fā)送返回消息,將UID攜帶在返回消息中,轉(zhuǎn)發(fā)服務(wù)器將返回消息轉(zhuǎn)換為http格式,并將攜帶UID的http格式的返回消息發(fā)送給推送服務(wù)器。
[0056]步驟204:ngx_lua模塊在接收到業(yè)務(wù)服務(wù)器發(fā)送的為客戶端分配的用戶標(biāo)識后,為客戶端分配推送通道,為推送通道生成通道標(biāo)識,并將通道標(biāo)識返回給客戶端;
[0057]通道標(biāo)識包括用戶標(biāo)識、用戶密碼和擾碼。用戶標(biāo)識為業(yè)務(wù)服務(wù)器為客戶端所分配;用戶密碼為客戶端在連接請求中所攜帶;擾碼為推送服務(wù)器隨機(jī)生成,一次登錄中擾碼保持不變。推送服務(wù)器在為推送通道生成通道標(biāo)識后,以用戶標(biāo)識為索引將用戶密碼和擾碼保存到密碼隊(duì)列中。
[0058]ngx_lua模塊通過向客戶端返回的連接確認(rèn)將通道標(biāo)識返回給客戶端。
[0059]步驟205:客戶端在接收到ngx_lua模塊返回的通道標(biāo)識后,根據(jù)通道標(biāo)識向push模塊發(fā)送連接消息,連接到推送通道;
[0060]步驟206:push模塊在客戶端連接成功后,向客戶端返回連接成功消息;
[0061]步驟207:客戶端在需要發(fā)起業(yè)務(wù)時(shí),向推送服務(wù)器發(fā)送業(yè)務(wù)請求;
[0062]步驟208:ngx_lua模塊將客戶端的業(yè)務(wù)請求轉(zhuǎn)換為socket格式,將socket格式的業(yè)務(wù)請求發(fā)送給業(yè)務(wù)服務(wù)器;
[0063]步驟209:業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理,通過轉(zhuǎn)發(fā)服務(wù)器向ngx_lua模塊發(fā)送http格式的業(yè)務(wù)應(yīng)答,指示客戶端請求已處理;
[0064]步驟210:ngx_lua模塊接收轉(zhuǎn)發(fā)服務(wù)器轉(zhuǎn)發(fā)的業(yè)務(wù)應(yīng)答,將業(yè)務(wù)應(yīng)答發(fā)送給push豐吳塊;
[0065]步驟211:push模塊通過為客戶端分配的推送通道將業(yè)務(wù)應(yīng)答推送給客戶端;
[0066]步驟212:業(yè)務(wù)服務(wù)器通過轉(zhuǎn)發(fā)服務(wù)器向ngx_lua模塊返回業(yè)務(wù)處理的信息,在返回的信息中攜帶為客戶端分配的用戶標(biāo)識;
[0067]步驟213:ngx_lua模塊接收推送服務(wù)器返回的信息,將該信息發(fā)送給push模塊;
[0068]步驟214:push模塊通過為客戶端分配的推送通道將業(yè)務(wù)服務(wù)器返回的信息推送給客戶端。
[0069]如圖3所示,本申請還提供了一種推送服務(wù)器,該推送服務(wù)器包括:拓展腳本模塊和推送模塊,其中:
[0070]拓展腳本模塊,用于建立客戶端與業(yè)務(wù)服務(wù)器的連接并為客戶端分配推送通道;接收客戶端在連接到推送通道后發(fā)送的業(yè)務(wù)請求,將業(yè)務(wù)請求發(fā)送給業(yè)務(wù)服務(wù)器;
[0071]推送模塊,用于將業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理時(shí)返回的信息通過為客戶端分配的推送通道推送給客戶端。
[0072]拓展腳本模塊,還用于在為客戶端分配推送通道后,為推送通道生成通道標(biāo)識,并將通道標(biāo)識返回給客戶端,以使客戶端根據(jù)通道標(biāo)識連接到推送通道,通道標(biāo)識包括用戶標(biāo)識、用戶密碼和擾碼。
[0073]拓展腳本模塊,還用于在為推送通道生成通道標(biāo)識后,以用戶標(biāo)識為索引將用戶密碼和擾碼保存到密碼隊(duì)列中;
[0074]推送模塊將業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理后返回的信息通過為客戶端分配的推送通道推送給客戶端,包括:接收業(yè)務(wù)服務(wù)器返回的信息,根據(jù)攜帶的用戶標(biāo)識從密碼隊(duì)列中讀取出用戶標(biāo)識對應(yīng)的用戶密碼和擾碼,生成客戶端對應(yīng)的推送通道的通道標(biāo)識;根據(jù)通道標(biāo)識將信息推送到相應(yīng)通道,使連接到推送通道的客戶端接收到信息。
[0075]拓展腳本模塊,還用于在向業(yè)務(wù)服務(wù)器發(fā)送消息時(shí),將消息轉(zhuǎn)換為套接字socket格式;從業(yè)務(wù)服務(wù)器接收業(yè)務(wù)服務(wù)器通過轉(zhuǎn)發(fā)服務(wù)器轉(zhuǎn)換為超文本傳輸協(xié)議http格式并轉(zhuǎn)發(fā)的消息。
[0076]拓展腳本模塊建立客戶端與業(yè)務(wù)服務(wù)器的連接,包括:
[0077]接收客戶端發(fā)送的連接請求,從連接請求中提取出用戶密碼,并將連接請求發(fā)送給業(yè)務(wù)服務(wù)器;
[0078]接收業(yè)務(wù)服務(wù)器根據(jù)連接請求為客戶端分配的用戶標(biāo)識,向客戶端返回連接確認(rèn)。
[0079]本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0080]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
[0081]盡管上文對本發(fā)明進(jìn)行了詳細(xì)說明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種向客戶端推送內(nèi)容的方法,其特征在于,包括: 推送服務(wù)器建立客戶端與業(yè)務(wù)服務(wù)器的連接并為客戶端分配推送通道; 所述推送服務(wù)器接收所述客戶端在連接到所述推送通道后發(fā)送的業(yè)務(wù)請求,將所述業(yè)務(wù)請求發(fā)送給所述業(yè)務(wù)服務(wù)器; 所述推送服務(wù)器將所述業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理時(shí)返回的信息通過為客戶端分配的推送通道推送給所述客戶端。2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述推送服務(wù)器在為客戶端分配推送通道后,還為推送通道生成通道標(biāo)識,并將通道標(biāo)識返回給客戶端,以使客戶端根據(jù)通道標(biāo)識連接到推送通道,所述通道標(biāo)識包括用戶標(biāo)識、用戶密碼和擾碼。3.如權(quán)利要求2所述的方法,其特征在于: 所述推送服務(wù)器在為推送通道生成通道標(biāo)識后,還以所述用戶標(biāo)識為索引將所述用戶密碼和擾碼保存到密碼隊(duì)列中; 所述推送服務(wù)器將所述業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理后返回的信息通過為客戶端分配的推送通道推送給所述客戶端,包括:接收業(yè)務(wù)服務(wù)器返回的信息,根據(jù)攜帶的用戶標(biāo)識從密碼隊(duì)列中讀取出用戶標(biāo)識對應(yīng)的用戶密碼和擾碼,生成客戶端對應(yīng)的推送通道的通道標(biāo)識;根據(jù)通道標(biāo)識將信息推送到相應(yīng)通道,使連接到所述推送通道的客戶端接收到信息。4.如權(quán)利要求1?3任意之一所述的方法,其特征在于: 所述推送服務(wù)器為超文本傳輸協(xié)議http服務(wù)器,所述業(yè)務(wù)服務(wù)器為套接字socket服務(wù)器;所述推送服務(wù)器在向所述業(yè)務(wù)服務(wù)器發(fā)送消息時(shí),將消息轉(zhuǎn)換為socket格式;所述業(yè)務(wù)服務(wù)器在向所述推送服務(wù)器發(fā)送消息時(shí),通過轉(zhuǎn)發(fā)服務(wù)器將消息轉(zhuǎn)換為http格式并轉(zhuǎn)發(fā)給所述推送服務(wù)器。5.如權(quán)利要求1?3任意之一所述的方法,其特征在于,所述推送服務(wù)器建立客戶端與業(yè)務(wù)服務(wù)器的連接,包括: 所述推送服務(wù)器接收客戶端發(fā)送的連接請求,從所述連接請求中提取出用戶密碼,并將所述連接請求發(fā)送給所述業(yè)務(wù)服務(wù)器; 所述推送服務(wù)器接收業(yè)務(wù)服務(wù)器根據(jù)連接請求為客戶端分配的用戶標(biāo)識,向客戶端返回連接確認(rèn)。6.一種推送服務(wù)器,其特征在于,包括:拓展腳本模塊和推送模塊,其中: 所述拓展腳本模塊,用于建立客戶端與業(yè)務(wù)服務(wù)器的連接并為客戶端分配推送通道;接收所述客戶端在連接到所述推送通道后發(fā)送的業(yè)務(wù)請求,將所述業(yè)務(wù)請求發(fā)送給所述業(yè)務(wù)服務(wù)器; 所述推送模塊,用于將所述業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理時(shí)返回的信息通過為客戶端分配的推送通道推送給所述客戶端。7.如權(quán)利要求6所述的推送服務(wù)器,其特征在于: 所述拓展腳本模塊,還用于在為客戶端分配推送通道后,為推送通道生成通道標(biāo)識,并將通道標(biāo)識返回給客戶端,以使客戶端根據(jù)通道標(biāo)識連接到推送通道,所述通道標(biāo)識包括用戶標(biāo)識、用戶密碼和擾碼。8.如權(quán)利要求7所述的推送服務(wù)器,其特征在于: 所述拓展腳本模塊,還用于在為推送通道生成通道標(biāo)識后,以所述用戶標(biāo)識為索引將所述用戶密碼和擾碼保存到密碼隊(duì)列中; 所述推送模塊將所述業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理后返回的信息通過為客戶端分配的推送通道推送給所述客戶端,包括:接收業(yè)務(wù)服務(wù)器返回的信息,根據(jù)攜帶的用戶標(biāo)識從密碼隊(duì)列中讀取出用戶標(biāo)識對應(yīng)的用戶密碼和擾碼,生成客戶端對應(yīng)的推送通道的通道標(biāo)識;根據(jù)通道標(biāo)識將信息推送到相應(yīng)通道,使連接到所述推送通道的客戶端接收到信息。9.如權(quán)利要求6?8任意之一所述的推送服務(wù)器,其特征在于: 所述拓展腳本模塊,還用于在向所述業(yè)務(wù)服務(wù)器發(fā)送消息時(shí),將消息轉(zhuǎn)換為套接字socket格式;從所述業(yè)務(wù)服務(wù)器接收業(yè)務(wù)服務(wù)器通過轉(zhuǎn)發(fā)服務(wù)器轉(zhuǎn)換為超文本傳輸協(xié)議http格式并轉(zhuǎn)發(fā)的消息。10.如權(quán)利要求6?8任意之一所述的推送服務(wù)器,其特征在于,所述拓展腳本模塊建立客戶端與業(yè)務(wù)服務(wù)器的連接,包括: 接收客戶端發(fā)送的連接請求,從所述連接請求中提取出用戶密碼,并將所述連接請求發(fā)送給所述業(yè)務(wù)服務(wù)器; 接收業(yè)務(wù)服務(wù)器根據(jù)連接請求為客戶端分配的用戶標(biāo)識,向客戶端返回連接確認(rèn)。
【專利摘要】本申請公開了一種向客戶端推送內(nèi)容的方法及推送服務(wù)器,所述方法包括:推送服務(wù)器建立客戶端與業(yè)務(wù)服務(wù)器的連接并為客戶端分配推送通道;所述推送服務(wù)器接收所述客戶端在連接到所述推送通道后發(fā)送的業(yè)務(wù)請求,將所述業(yè)務(wù)請求發(fā)送給所述業(yè)務(wù)服務(wù)器;所述推送服務(wù)器將所述業(yè)務(wù)服務(wù)器根據(jù)業(yè)務(wù)請求進(jìn)行相應(yīng)處理時(shí)返回的信息通過為客戶端分配的推送通道推送給所述客戶端。本申請中的推送服務(wù)器作為客戶端與業(yè)務(wù)服務(wù)器的中間層,可起到網(wǎng)關(guān)服務(wù)器的作用,當(dāng)業(yè)務(wù)服務(wù)器出現(xiàn)問題時(shí),也可以隨時(shí)進(jìn)行調(diào)整,業(yè)務(wù)服務(wù)器不與客戶端直接連接減少安全隱患,且具體穩(wěn)定和高并發(fā)的特點(diǎn),可擴(kuò)展性更強(qiáng)。
【IPC分類】H04L29/08
【公開號】CN105049507
【申請?zhí)枴緾N201510415282
【發(fā)明人】張俊, 陳正超
【申請人】貴陽朗瑪信息技術(shù)股份有限公司
【公開日】2015年11月11日
【申請日】2015年7月15日