[發明專利]一種基于MQTT協議的聊天方法及系統在審
| 申請號: | 201810672487.6 | 申請日: | 2018-06-26 |
| 公開(公告)號: | CN108965265A | 公開(公告)日: | 2018-12-07 |
| 發明(設計)人: | 史龍 | 申請(專利權)人: | 四川斐訊信息技術有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L12/58 |
| 代理公司: | 成都金德聯合知識產權代理事務所(特殊普通合伙) 51271 | 代理人: | 張嬋嬋;王曉普 |
| 地址: | 610100 四川省成*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 服務器 客戶端 聊天 身份ID信息 長連接 有效降低網絡 電量消耗 會話窗口 即時聊天 會話 輪詢 收發 創建 | ||
本發明公開了一種基于MQTT協議的聊天方法及系統,其聊天方法包括步驟:S1:獲取第一用戶的身份ID信息;S2:根據上述第一用戶的身份ID信息,與MQTT服務器進行連接;S3:創建會話窗口并與會話窗口內的用戶進行會話。本發明的技術方案是在客戶端與MQTT服務器之間進行長連接的基礎上,使各個用戶間的消息進行即時收發,以實現各個用戶間進行聊天的目的,且能夠避免即時聊天的客戶端多次輪詢服務器而造成服務器超負荷的問題。另外,客戶端與MQTT服務器進行長連接還能夠有效降低網絡流量的浪費及電量消耗,具有較好的實用性。
技術領域
本發明涉及通信技術領域,尤其涉及一種基于MQTT協議的聊天方法及系統。
背景技術
即時通訊(Instant messaging)是一個客戶終端連網一個即時通訊網路的服務,其允許兩人或多人使用網路即時的傳遞文字訊息、檔案、語音與視頻交流,如:基于瀏覽器的web通訊、飛信、ICQ、QQ等多種即時通訊方式。
但是現階段的即時通訊軟件,大多是基于HTTP協議的服務器與客戶終端相連接實現的,其存在著以下缺點:
1、HTTP協議是無狀態的,基于HTTP協議的服務器不知道下次的會話與上一次的會話是否是同一用戶,從而需要利用Cookie去管理用戶,進而造成了服務器負荷過重,也增加了會話被盜竊的可能性;
2、HTTP協議不支持真正意義上的長連接,而聊天軟件又要求做到即時收發消息,從而,聊天軟件app客戶端需要不停的輪詢服務器才能夠實現即時通訊的目的,其持續輪詢訪問服務器將對客戶端和服務器造成巨大的流量浪費及性能負擔,而且其必然耗費大量的電能;
3、HTTP協議的本身報文報頭等需要占用較多的字節,進而造成流量的浪費,也減慢了通訊速度。
如:申請號為201110454201.5的中國發明專利公開了一種基于瀏覽器的WEB即時通訊方法,該即時通訊方法包括:用戶登錄瀏覽器客戶端,向服務器發起http請求,服務器從線程池獲取線程處理瀏覽器客戶端發起的http連接請求,判斷其緩沖區是否有新信息,如果有,則服務器將信息發送給瀏覽器客戶端;如果沒有,則服務器使用NIO技術掛起連接,并釋放線程到線程池;服務器判斷連接是否超時;如果超時,則從線程池獲取一個線程發送一個心跳信號給瀏覽器客戶端,重新建立連接;否則服務器判斷是否有新消息,如果是,則服務器將新消息發送給瀏覽器客戶端,否則繼續監控。
上述現有技術是通過在連接空閑時掛起連接的方式,來達到減輕服務器負荷的目的,但仍然是基于http協議的服務器進行即時通訊,依舊存在服務器負荷較重、網絡流量浪費、電能損耗大等缺點。
發明內容
針對上述問題,本發明公開了一種基于MQTT協議的聊天方法,該聊天方法具體包括如下步驟:
S1:獲取第一用戶的身份ID信息;
S2:根據上述第一用戶的身份ID信息,與MQTT服務器進行連接;
S3:創建會話窗口并與上述會話窗口內的用戶進行會話。
進一步的,上述步驟S1包括:
S11:獲取第一用戶的注冊信息;
S12:發送第一用戶的注冊信息至MQTT服務器;
S13:接收MQTT服務器所生成的第一用戶的身份ID信息。
進一步的,上述步驟S2包括:
S21:根據第一用戶的身份ID信息,與所述MQTT服務器進行長連接;
S22:預置on_message回調函數。
進一步的,上述步驟S3包括:
判斷是否與第二用戶進行單獨聊天;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川斐訊信息技術有限公司,未經四川斐訊信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810672487.6/2.html,轉載請聲明來源鉆瓜專利網。





