[發(fā)明專利]一種精簡的分布式長連接的數(shù)據(jù)傳輸方法及系統(tǒng)在審
| 申請(qǐng)?zhí)枺?/td> | 202110432355.8 | 申請(qǐng)日: | 2021-04-21 |
| 公開(公告)號(hào): | CN113132487A | 公開(公告)日: | 2021-07-16 |
| 發(fā)明(設(shè)計(jì))人: | 周聰偉;張友明;劉金鋒 | 申請(qǐng)(專利權(quán))人: | 深圳市樂唯科技開發(fā)有限公司 |
| 主分類號(hào): | H04L29/08 | 分類號(hào): | H04L29/08;H04L12/803;G06F9/54 |
| 代理公司: | 深圳市海盛達(dá)知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 44540 | 代理人: | 趙雪佳 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 精簡 分布式 連接 數(shù)據(jù)傳輸 方法 系統(tǒng) | ||
本發(fā)明提供了精簡的分布式長連接的數(shù)據(jù)傳輸方法及系統(tǒng),該方法包括如下步驟:步驟1:約定長連接客戶端和服務(wù)器端數(shù)據(jù)格式,包括消息類型;步驟2:客戶端通過長連接連接到服務(wù)器后,后端服務(wù)器維護(hù)長連接用戶在線列表;步驟3:增加消息隊(duì)列rabbitmq,用來對(duì)接消息的發(fā)送端和接收端;步驟4:客戶端發(fā)送的消息,通過nginx到長連接實(shí)際處理模塊,長連接實(shí)際處理模塊按業(yè)務(wù)處理完成后,直接返回給前端用戶;步驟5:后端業(yè)務(wù)處理模塊要發(fā)消息給用戶時(shí),先判斷用戶是否在線,如果用戶在線,就將消息發(fā)到消息隊(duì)列,由各長連接實(shí)際業(yè)務(wù)處理模塊按規(guī)則進(jìn)行路由轉(zhuǎn)發(fā)。本發(fā)明的有益效果是:可以很方便對(duì)長連接模塊進(jìn)行改造,快速實(shí)現(xiàn)擴(kuò)展。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,尤其涉及一種精簡的分布式長連接的數(shù)據(jù)傳輸方法及系統(tǒng)。
背景技術(shù)
在客戶端和服務(wù)器的數(shù)據(jù)傳輸過程中,長連接是必不可少的。通過建立的長連接,服務(wù)器可以很方便將消息下發(fā)給各個(gè)客戶端。
HTTP的分布式比較好實(shí)現(xiàn),可以通過Redis實(shí)現(xiàn)連接共享,用nginx進(jìn)行反向代理,但長連接部分的消息轉(zhuǎn)發(fā),如果用多個(gè)節(jié)點(diǎn)來實(shí)現(xiàn),消息可能會(huì)被多次發(fā)送。
發(fā)明內(nèi)容
本發(fā)明提供了一種精簡的分布式長連接的數(shù)據(jù)傳輸方法,包括如下步驟:
步驟1:約定長連接客戶端和服務(wù)器端數(shù)據(jù)格式,包括消息的類型。
步驟2:客戶端通過長連接連接到服務(wù)器后,后端服務(wù)器維護(hù)一個(gè)長連接用戶在線列表。
步驟3:增加一個(gè)消息隊(duì)列rabbitmq,用來對(duì)接消息的發(fā)送端和接收端。
步驟4:客戶端發(fā)送的消息,通過nginx到長連接實(shí)際處理模塊,長連接實(shí)際處理模塊按業(yè)務(wù)處理完成后,直接返回給前端用戶。
步驟5:后端業(yè)務(wù)處理模塊要發(fā)消息給用戶時(shí),先判斷用戶是否在線,如果用戶在線,就將消息發(fā)到消息隊(duì)列,由各長連接實(shí)際業(yè)務(wù)處理模塊按規(guī)則進(jìn)行路由轉(zhuǎn)發(fā),如果用戶不在線,需要離線緩存的消息,用緩存進(jìn)行存儲(chǔ),用數(shù)據(jù)庫進(jìn)行持久化;然后繼續(xù)執(zhí)行步驟4,完成數(shù)據(jù)發(fā)送和接受過程。
作為本發(fā)明的進(jìn)一步改進(jìn),在所述步驟1中,消息的類型包括單條消息、房間消息和廣播消息三種類型;在所述步驟2中,后端服務(wù)器維護(hù)一個(gè)長連接用戶在線用戶列表,該列表用redis進(jìn)行存儲(chǔ)。
作為本發(fā)明的進(jìn)一步改進(jìn),在所述步驟3中,具體還包括:
步驟S1:配置好rabbitmq對(duì)應(yīng)的消息隊(duì)列名稱、賬號(hào)、密碼和相應(yīng)的路由器。
步驟S2:長連接模塊連接rabbitmq路由器的接收端,并維持一個(gè)本節(jié)點(diǎn)的在線用戶列表,后端業(yè)務(wù)模塊連接到rabbitmq的發(fā)送端。
作為本發(fā)明的進(jìn)一步改進(jìn),在所述步驟5中,各長連接實(shí)際業(yè)務(wù)處理模塊,按單條消息、房間消息和廣播消息的規(guī)則進(jìn)行路由轉(zhuǎn)發(fā)。
作為本發(fā)明的進(jìn)一步改進(jìn),在所述步驟5中,按單條消息進(jìn)行路由轉(zhuǎn)發(fā)時(shí),各長連接實(shí)際處理模塊在線列表會(huì)判斷該用戶是否存在,如果是,則發(fā)送該消息,然后返回步驟4,否則直接返回步驟4;
在所述步驟5中,按房間消息進(jìn)行路由轉(zhuǎn)發(fā)時(shí),向本節(jié)點(diǎn)該房間所有用戶發(fā)送消息,然后返回步驟4。
在所述步驟5中,按廣播消息進(jìn)行路由轉(zhuǎn)發(fā)時(shí),向本節(jié)點(diǎn)所有用戶發(fā)送消息,然后返回步驟4。
本發(fā)明的有益效果是:1.本發(fā)明的精簡的分布式長連接的數(shù)據(jù)傳輸方法可以很方便對(duì)長連接模塊進(jìn)行改造,快速實(shí)現(xiàn)擴(kuò)展;2.本發(fā)明的精簡的分布式長連接的數(shù)據(jù)傳輸方法可以很方便將長連接的業(yè)務(wù)壓力進(jìn)行負(fù)載均衡,動(dòng)態(tài)擴(kuò)展。
附圖說明
圖1是本發(fā)明數(shù)據(jù)傳輸方法的流程圖。
具體實(shí)施方式
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳市樂唯科技開發(fā)有限公司,未經(jīng)深圳市樂唯科技開發(fā)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110432355.8/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種并發(fā)數(shù)據(jù)傳輸控制方法、裝置及終端
- 數(shù)據(jù)傳輸處理方法和數(shù)據(jù)傳輸器
- 一種數(shù)據(jù)傳輸方法及裝置
- 數(shù)據(jù)傳輸方法、裝置及設(shè)備
- 一種數(shù)據(jù)傳輸終端、方法及系統(tǒng)
- 一種物聯(lián)網(wǎng)數(shù)據(jù)傳輸方式的選擇方法和裝置
- 數(shù)據(jù)傳輸方法、數(shù)據(jù)傳輸裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種基于電價(jià)的非實(shí)時(shí)數(shù)據(jù)傳輸調(diào)度方法
- 基于云計(jì)算的數(shù)據(jù)傳輸處理方法、裝置及系統(tǒng)
- 一種數(shù)據(jù)處理方法、裝置及存儲(chǔ)介質(zhì)





