一種通信協(xié)議轉(zhuǎn)換方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,具體而言,尤其涉及一種通信協(xié)議轉(zhuǎn)換方法及裝置。
【背景技術(shù)】
[0002] Nginx是一款輕量級(jí)的Web服務(wù)器,也是一個(gè)IMAP(InternetMailAccess Protocol,交互式郵件存取協(xié)議)/P0P3(PostOfficeProtocol_Version3,郵局協(xié)議版本 3) /SMTP(SimpleMailTransferProtocol,即簡(jiǎn)單郵件傳輸協(xié)議)代理服務(wù)器,由俄羅斯的程 序設(shè)計(jì)師IgorSysoev所開發(fā),Nginx是一款面向性能設(shè)計(jì)的HTTP(HyperTextTransfer Protocol,超文本傳輸協(xié)議)服務(wù)器,相較于Apache、lighttpd具有占有內(nèi)存少,穩(wěn)定性高 等優(yōu)勢(shì)。
[0003] 在相關(guān)技術(shù)中,nginx主要用于作為代理服務(wù)器,對(duì)少量的協(xié)議例如HTTP郵件協(xié) 議進(jìn)行轉(zhuǎn)發(fā),其僅限于其前后端協(xié)議類型相同的應(yīng)用場(chǎng)景,不能實(shí)現(xiàn)對(duì)于前后端協(xié)議類型 不同的應(yīng)用。因此有必要提供一種可以突破nginx服務(wù)器應(yīng)用局限性的措施。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的技術(shù)問(wèn)題是nginx服務(wù)器對(duì)于其前后端協(xié)議類型不同的應(yīng)用具 有局限性的問(wèn)題,提供一種通信協(xié)議轉(zhuǎn)換方法及裝置。
[0005] 本發(fā)明提供了一種通信協(xié)議轉(zhuǎn)換方法,該方法包括:獲取服務(wù)器的配置文件信息, 并根據(jù)配置文件信息開啟與配置文件信息中記錄的通信協(xié)議信息對(duì)應(yīng)的通信協(xié)議處理流 程;
[0006] 通過(guò)一個(gè)或多個(gè)通信協(xié)議處理流程接收與其相對(duì)應(yīng)的消息數(shù)據(jù),并根據(jù)配置文件 信息對(duì)消息數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換。
[0007] 其中,通過(guò)一個(gè)或多個(gè)通信協(xié)議處理流程接收與其相對(duì)應(yīng)的消息數(shù)據(jù),并根據(jù)配 置文件信息對(duì)消息數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換包括:通過(guò)相應(yīng)的通信協(xié)議處理流程接收客戶端的鏈 接請(qǐng)求,根據(jù)配置文件信息確定與鏈接請(qǐng)求對(duì)應(yīng)的服務(wù)端所使用的通信協(xié)議,并建立與服 務(wù)端的通信鏈路;對(duì)鏈接請(qǐng)求進(jìn)行解析,將解析后的鏈接請(qǐng)求轉(zhuǎn)換為服務(wù)端使用的通信協(xié) 議,并通過(guò)通信鏈路發(fā)送到服務(wù)端;監(jiān)聽服務(wù)端通過(guò)通信鏈路發(fā)送的數(shù)據(jù),將數(shù)據(jù)逆轉(zhuǎn)換為 客戶端使用的通信協(xié)議,并發(fā)送給客戶端。
[0008] 進(jìn)一步的,上述方法還包括:如果接收到來(lái)自客戶端發(fā)送的同屬于一個(gè)消息數(shù)據(jù) 的多個(gè)子數(shù)據(jù)包時(shí),將接收到的多個(gè)子數(shù)據(jù)包緩存到本地,在接收到同屬于該消息數(shù)據(jù)的 所有子數(shù)據(jù)包后,根據(jù)配置文件信息對(duì)該消息數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換,并一次性發(fā)送至服務(wù)端。
[0009] 其中,根據(jù)配置文件信息開啟相應(yīng)的通信協(xié)議處理流程包括:
[0010]由一個(gè)或多個(gè)根據(jù)配置文件信息開啟的進(jìn)程分別同時(shí)執(zhí)行與配置文件信息中記 錄的通信協(xié)議信息對(duì)應(yīng)的通信協(xié)議處理流程;其中,通過(guò)一個(gè)或多個(gè)通信協(xié)議處理流程接 收與其相對(duì)應(yīng)的消息數(shù)據(jù)之前,還包括:根據(jù)配置文件信息確定用于處理消息數(shù)據(jù)的通信 協(xié)議處理流程。
[0011] 進(jìn)一步的,上述方法還包括:在根據(jù)配置文件信息開啟的一個(gè)或多個(gè)進(jìn)程中存在 負(fù)載過(guò)重或停止工作的進(jìn)程時(shí),根據(jù)配置文件信息啟動(dòng)替換負(fù)載過(guò)重或停止工作的進(jìn)程。
[0012] 本發(fā)明還提供了一種協(xié)議轉(zhuǎn)換裝置,該裝置包括:協(xié)議開啟模塊,用于獲取服務(wù)器 的配置文件信息,并根據(jù)配置文件信息開啟與配置文件信息中記錄的通信協(xié)議信息對(duì)應(yīng)的 通信協(xié)議處理流程;協(xié)議轉(zhuǎn)換模塊,用于通過(guò)一個(gè)或多個(gè)通信協(xié)議處理流程接收與其相對(duì) 應(yīng)的消息數(shù)據(jù),并根據(jù)配置文件信息對(duì)消息數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換。
[0013] 其中,協(xié)議轉(zhuǎn)換模塊包括:確定單元,用于通過(guò)相應(yīng)的通信協(xié)議處理流程接收客戶 端的鏈接請(qǐng)求,根據(jù)配置文件信息確定與鏈接請(qǐng)求對(duì)應(yīng)的服務(wù)端所使用的通信協(xié)議,并建 立與服務(wù)端的通信鏈路;第一協(xié)議轉(zhuǎn)換單元,用于對(duì)鏈接請(qǐng)求進(jìn)行解析,將解析后的鏈接請(qǐng) 求轉(zhuǎn)換為服務(wù)端使用的通信協(xié)議,并通過(guò)通信鏈路發(fā)送到服務(wù)端;第二協(xié)議轉(zhuǎn)換單元,用于 監(jiān)聽服務(wù)端通過(guò)通信鏈路發(fā)送的數(shù)據(jù),將數(shù)據(jù)逆轉(zhuǎn)換為客戶端使用的通信協(xié)議,并發(fā)送給 客戶端。
[0014] 進(jìn)一步的,上述裝置還包括:緩存模塊,用于如果接收到來(lái)自客戶端發(fā)送的同屬于 一個(gè)消息數(shù)據(jù)的多個(gè)子數(shù)據(jù)包時(shí),將接收到的多個(gè)子數(shù)據(jù)包緩存到本地,在接收到同屬于 該消息數(shù)據(jù)的所有子數(shù)據(jù)包后,根據(jù)配置文件信息對(duì)該消息數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換,并一次性 發(fā)送至服務(wù)端。
[0015] 其中,上述協(xié)議開啟模塊包括:協(xié)議開啟單元,用于由一個(gè)或多個(gè)根據(jù)所述配置文 件信息開啟的進(jìn)程分別同時(shí)執(zhí)行與所述配置文件信息中記錄的通信協(xié)議信息對(duì)應(yīng)的通信 協(xié)議處理流程;裝置還包括,確定模塊,用于在所述協(xié)議轉(zhuǎn)換模塊通過(guò)一個(gè)或多個(gè)所述通信 協(xié)議處理流程接收與其相對(duì)應(yīng)的消息數(shù)據(jù)之前,根據(jù)配置文件信息確定用于處理消息數(shù)據(jù) 的通信協(xié)議處理流程。
[0016] 進(jìn)一步的,上述裝置還包括:替換單元,用于在根據(jù)配置文件信息開啟的一個(gè)或多 個(gè)進(jìn)程中存在負(fù)載過(guò)重或停止工作的進(jìn)程時(shí),根據(jù)配置文件信息啟動(dòng)替換負(fù)載過(guò)重或停止 工作的進(jìn)程。
[0017] 采用本發(fā)明的上述技術(shù)方案,根據(jù)獲取服務(wù)器的配置文件信息,并根據(jù)配置文件 信息開啟與配置文件信息中記錄的通信協(xié)議信息對(duì)應(yīng)的通信協(xié)議處理流程,通過(guò)一個(gè)或多 個(gè)通信協(xié)議處理流程接收與其相對(duì)應(yīng)的消息數(shù)據(jù),并根據(jù)配置文件信息對(duì)消息數(shù)據(jù)進(jìn)行協(xié) 議轉(zhuǎn)換。實(shí)現(xiàn)了前后端服務(wù)器的協(xié)議類型不同的nginx服務(wù)器的應(yīng)用,以及nginx服務(wù)器 對(duì)任意協(xié)議的代理,提高了nginx服務(wù)器的通用性。
【附圖說(shuō)明】
[0018] 圖1為本發(fā)明實(shí)施例的通信協(xié)議轉(zhuǎn)換方法流程圖;
[0019] 圖2為本發(fā)明實(shí)施例的實(shí)施通信協(xié)議轉(zhuǎn)換方法所采用系統(tǒng)的示意圖;
[0020] 圖3為本發(fā)明實(shí)施例的另一個(gè)實(shí)施通信協(xié)議轉(zhuǎn)換方法所采用系統(tǒng)的示意圖;
[0021] 圖4為本發(fā)明實(shí)施例的將websocket協(xié)議的消息數(shù)據(jù)轉(zhuǎn)化為UDP協(xié)議消息數(shù)據(jù)的 流程圖;
[0022] 圖5為本發(fā)明實(shí)施例的通信協(xié)議轉(zhuǎn)換裝置的結(jié)構(gòu)框圖;
[0023] 圖6為本發(fā)明實(shí)施例的nginx服務(wù)器中每個(gè)工作進(jìn)程內(nèi)部通信協(xié)議轉(zhuǎn)換處理結(jié)構(gòu) 示意圖。
【具體實(shí)施方式】
[0024] 為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效,以下結(jié)合附圖 及較佳實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明如后。
[0025] 本發(fā)明實(shí)施例提供了一種通信協(xié)議轉(zhuǎn)換方法,圖1是該方法的流程圖,如圖1所 示,該包括以下具體步驟:
[0026] 步驟101 :獲取nginx服務(wù)器的配置文件信息,并根據(jù)配置文件信息開啟與配置文 件信息中記錄的通信協(xié)議信息對(duì)應(yīng)的通信協(xié)議處理流程;
[0027] 步驟102 :通過(guò)一個(gè)或多個(gè)通信協(xié)議處理流程接收與其相對(duì)應(yīng)的消息數(shù)據(jù),并根 據(jù)配置文件信息對(duì)消息數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換。
[0028] 上述步驟102具體可以通過(guò)以下方式來(lái)執(zhí)行:
[0029] 通過(guò)相應(yīng)的通信協(xié)議處理流程接收客戶端的鏈接請(qǐng)求,根據(jù)配置文件信息確定與 鏈接請(qǐng)求對(duì)應(yīng)的服務(wù)端所使用的通信協(xié)議,并建立與服務(wù)端的通信鏈路;對(duì)鏈接請(qǐng)求進(jìn)行 解析,將解析后的鏈接請(qǐng)求轉(zhuǎn)換