亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種向客戶端推送內(nèi)容的方法及推送服務器的制造方法

文檔序號:9330631閱讀:760來源:國知局
一種向客戶端推送內(nèi)容的方法及推送服務器的制造方法
【技術領域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術領域,尤其涉及一種向客戶端推送內(nèi)容的方法及推送服務器。
【背景技術】
[0002]客戶端和服務器的通信方式通常有socket (套接字)方式通信數(shù)據(jù);或http (超文本傳輸協(xié)議)方式拉取數(shù)據(jù)。
[0003]服務器和客戶端通過socket通信數(shù)據(jù),其優(yōu)點有實時性高,可做廣播和可實現(xiàn)邏輯比較復雜的業(yè)務;其缺點在于穩(wěn)定性和安全性都依賴于服務器的代碼質(zhì)量。當服務端的入口地址更改或者業(yè)務服務器出現(xiàn)問題就會導致業(yè)務功能不能正常使用,還需要做網(wǎng)關服務器等一系列服務器來確保穩(wěn)定性,且服務端直接與客戶端相連接,增加了安全隱患。服務器與客戶端通過http方式通信的優(yōu)點是穩(wěn)定性和安全性有web服務器來做保證,缺點在于不能實現(xiàn)廣播、邏輯性比較復雜和實時性較高的業(yè)務。
[0004]目前,亟需一種客戶端與服務器之間的通信方法,在安全、穩(wěn)定的情況下,保證廣播、邏輯復雜業(yè)務及實時性較高的業(yè)務的實現(xiàn)。

【發(fā)明內(nèi)容】

[0005]本發(fā)明要解決的技術問題是提供一種向客戶端推送內(nèi)容的方法及推送服務器,能夠在保證安全、穩(wěn)定的情況下,實現(xiàn)廣播、邏輯復雜及實時性較高的業(yè)務。
[0006]為解決上述技術問題,本申請的一種向客戶端推送內(nèi)容的方法,包括:
[0007]推送服務器建立客戶端與業(yè)務服務器的連接并為客戶端分配推送通道;
[0008]所述推送服務器接收所述客戶端在連接到所述推送通道后發(fā)送的業(yè)務請求,將所述業(yè)務請求發(fā)送給所述業(yè)務服務器;
[0009]所述推送服務器將所述業(yè)務服務器根據(jù)業(yè)務請求進行相應處理時返回的信息通過為客戶端分配的推送通道推送給所述客戶端。
[0010]進一步地,所述方法還包括:
[0011]所述推送服務器在為客戶端分配推送通道后,還為推送通道生成通道標識,并將通道標識返回給客戶端,以使客戶端根據(jù)通道標識連接到推送通道,所述通道標識包括用戶標識、用戶密碼和擾碼。
[0012]進一步地,所述推送服務器在為推送通道生成通道標識后,還以所述用戶標識為索引將所述用戶密碼和擾碼保存到密碼隊列中;
[0013]所述推送服務器將所述業(yè)務服務器根據(jù)業(yè)務請求進行相應處理后返回的信息通過為客戶端分配的推送通道推送給所述客戶端,包括:接收業(yè)務服務器返回的信息,根據(jù)攜帶的用戶標識從密碼隊列中讀取出用戶標識對應的用戶密碼和擾碼,生成客戶端對應的推送通道的通道標識;根據(jù)通道標識將信息推送到相應通道,使連接到所述推送通道的客戶端接收到信息。
[0014]進一步地,所述推送服務器為超文本傳輸協(xié)議http服務器,所述業(yè)務服務器為套接字socket服務器;所述推送服務器在向所述業(yè)務服務器發(fā)送消息時,將消息轉換為socket格式;所述業(yè)務服務器在向所述推送服務器發(fā)送消息時,通過轉發(fā)服務器將消息轉換為http格式并轉發(fā)給所述推送服務器。
[0015]進一步地,所述推送服務器建立客戶端與業(yè)務服務器的連接,包括:
[0016]所述推送服務器接收客戶端發(fā)送的連接請求,從所述連接請求中提取出用戶密碼,并將所述連接請求發(fā)送給所述業(yè)務服務器;
[0017]所述推送服務器接收業(yè)務服務器根據(jù)連接請求為客戶端分配的用戶標識,向客戶端返回連接確認。
[0018]進一步地,一種推送服務器,包括:拓展腳本模塊和推送模塊,其中:
[0019]所述拓展腳本模塊,用于建立客戶端與業(yè)務服務器的連接并為客戶端分配推送通道;接收所述客戶端在連接到所述推送通道后發(fā)送的業(yè)務請求,將所述業(yè)務請求發(fā)送給所述業(yè)務服務器;
[0020]所述推送模塊,用于將所述業(yè)務服務器根據(jù)業(yè)務請求進行相應處理時返回的信息通過為客戶端分配的推送通道推送給所述客戶端。
[0021]進一步地,所述拓展腳本模塊,還用于在為客戶端分配推送通道后,為推送通道生成通道標識,并將通道標識返回給客戶端,以使客戶端根據(jù)通道標識連接到推送通道,所述通道標識包括用戶標識、用戶密碼和擾碼。
[0022]進一步地,所述拓展腳本模塊,還用于在為推送通道生成通道標識后,以所述用戶標識為索引將所述用戶密碼和擾碼保存到密碼隊列中;
[0023]所述推送模塊將所述業(yè)務服務器根據(jù)業(yè)務請求進行相應處理后返回的信息通過為客戶端分配的推送通道推送給所述客戶端,包括:接收業(yè)務服務器返回的信息,根據(jù)攜帶的用戶標識從密碼隊列中讀取出用戶標識對應的用戶密碼和擾碼,生成客戶端對應的推送通道的通道標識;根據(jù)通道標識將信息推送到相應通道,使連接到所述推送通道的客戶端接收到信息。
[0024]進一步地,所述拓展腳本模塊,還用于在向所述業(yè)務服務器發(fā)送消息時,將消息轉換為套接字socket格式;從所述業(yè)務服務器接收業(yè)務服務器通過轉發(fā)服務器轉換為超文本傳輸協(xié)議http格式并轉發(fā)的消息。
[0025]進一步地,所述拓展腳本模塊建立客戶端與業(yè)務服務器的連接,包括:
[0026]接收客戶端發(fā)送的連接請求,從所述連接請求中提取出用戶密碼,并將所述連接請求發(fā)送給所述業(yè)務服務器;
[0027]接收業(yè)務服務器根據(jù)連接請求為客戶端分配的用戶標識,向客戶端返回連接確認。
[0028]綜上所述,本申請中的推送服務器作為客戶端與業(yè)務服務器的中間層,可起到網(wǎng)關服務器的作用,當業(yè)務服務器出現(xiàn)問題時,也可以隨時進行調(diào)整,業(yè)務服務器不與客戶端直接連接減少安全隱患,且具體穩(wěn)定和高并發(fā)的特點,可擴展性更強。
【附圖說明】
[0029]圖1為本申請的向客戶端推送內(nèi)容的方法的流程圖;
[0030]圖2為本申請的向客戶端推送內(nèi)容的方法的交互圖;
[0031]圖3為本申請的推送服務器的架構圖。
【具體實施方式】
[0032]下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0033]實施例1:
[0034]如圖1所示,本申請的向客戶端推送內(nèi)容的方法,包括:
[0035]步驟101:推送服務器建立客戶端與業(yè)務服務器的連接并為客戶端分配推送通道;
[0036]客戶端向推送服務器發(fā)送連接請求,推送服務器從連接請求中提取出用戶密碼,并將連接請求轉換成socket格式,通過UDP方式發(fā)給業(yè)務服務器。業(yè)務服務器為用戶(客戶端)分配一個用戶標識(UID),通過turnServer (轉發(fā)服務器)將攜帶UID的消息轉換成http格式發(fā)給推送服務器。
[0037]推送服務器接收到業(yè)務服務器發(fā)送的為客戶端分配的用戶標識后,判斷客戶端是否擁有推送通道,如果沒有,則為客戶端分配推送通道,并為推送通道生成通道標識。推送服務器向客戶端返回連接確認,通過連接確認將通道標識返回給客戶端,以使客戶端能夠根據(jù)通道標識連接到推送通道。
[0038]通道標識包括用戶標識、用戶密碼和擾碼。用戶標識為業(yè)務服務器為客戶端所分配;用戶密碼為客戶端在連接請求中所攜帶;擾碼為推送服務器隨機生成,一次登錄中擾碼保持不變。推送服務器在為推送通道生成通道標識后,以用戶標識為索引將用戶密碼和擾碼保存到密碼隊列中。
[0039]本申請中,推送服務器為http服務器,如可采用web服務器中的nginx服務器。推送服務器在向業(yè)務服務器發(fā)送連接請求以及其他消息時,將消息轉換為socket格式。例如,推送服務器采用nginx服務器時,通過nginx服務器中的ngx_lua(拓展腳本)模塊上運行的自定義Iua腳本將消息轉成socket格式。
[0040]業(yè)務服務器為socket服務器。業(yè)務服務器在向推送服務器發(fā)送為客戶端分配的用戶標識以及其他消息時,通過轉發(fā)服務器將消息轉換為http格式并轉發(fā)給推送服務器。
[0041]步驟102:推送服務器接收客戶端在連接推送通道后發(fā)送的業(yè)務請求,將業(yè)務請求發(fā)送給業(yè)務服務器;
[0042]客戶端在接收到推送服務器返回的通道標識后,根據(jù)通道標識連接到推送通道。例如,通道標識中的用戶密碼以joinAuthKey表示,用戶標識以uid表示,擾碼以channel表示,則客戶端在接收到通道標識后,可以通過訪問地址http://服務端地址/sub/$ {joinAuthKey}_channel_$ {uid}連接到推送通道??蛻舳嗽谶B接到推送通道后,在有業(yè)務需求時,向推送服務器發(fā)送業(yè)務請求。
[0043]推送服務器在接收到客戶端發(fā)送的業(yè)務請求后,將業(yè)務請求轉換為socket格式,將socket格式的業(yè)務請求發(fā)送給業(yè)務服務器。
[0044]步驟103:推送服務器將業(yè)務服務器根據(jù)業(yè)務請求進行相應處理時返回的信息通過為客戶端分配的推送通道推送給客戶端。
[0045]推送服務器在將業(yè)務請求發(fā)送給業(yè)務服務器后,業(yè)務服務器根據(jù)業(yè)務請求進行相應處理,并向推送服務器返回信息。在返回的信息中攜帶為客戶端分配的用戶標識。攜帶業(yè)務服務器返回的信息的消息經(jīng)轉發(fā)服務器轉換為http格式后轉發(fā)給推送服務器。
[0046]例如,針對聊天業(yè)務,客戶端A在需要向客戶端B發(fā)送消息時,向推送服務器發(fā)送業(yè)務請求。推送服務器將業(yè)務請求轉換為socket格式后發(fā)送給業(yè)務服務器。業(yè)務服務器根據(jù)客戶端A的業(yè)務請求將客戶端A的消息推送給客戶端B,并將客戶端B返回的消息通過轉發(fā)服務器發(fā)送給推送服務器。推送服務器通過為客戶端A分配的推送通道將業(yè)務服務器返回的消息推送給客戶端A。
[0047]推送服務器將業(yè)務服務器返回的信息通過為客戶端分配的推送通道推送給客戶端,可以是:接收業(yè)務服務器返回的信息,根據(jù)信息中攜帶的用戶標識從密碼隊列中讀取出用戶標識對應的用戶密碼和擾碼,生成客戶端對應的推送通道的通道標識;根據(jù)通道標識將業(yè)務服務器返回的信息推送到相應通道,使連接到推送通道的客戶端接收到信息。
[0048]實施例2:
[0049]下面以客戶端、推送服務器和業(yè)務服務器相互交互的方式說明本申請的向客戶端推送內(nèi)容的方法,其中,推送服務器采用nginx服務器,包含ngx_lua (拓展腳本)模塊和推送(push)模塊。推送服務器與業(yè)務服務器之間通過轉發(fā)服務器進行消息格式的轉換和轉發(fā)。
[0050]步驟201:客戶端向ngx_lua模塊發(fā)送連接請求;
[0051]客戶端在需要與業(yè)務服務器建立連接時,向推送服務器發(fā)送連接請求,以通過推
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1