一種用戶間可擴(kuò)展的通信方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及用戶通信領(lǐng)域,具體地說,涉及一種用戶間可擴(kuò)展的通信方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動互聯(lián)網(wǎng)的不斷普及,人們獲取信息途徑越來越豐富,移動終端已經(jīng)成為人們?nèi)粘I钪兄饕畔碓粗?。如何為移動終端更高效地推送信息成為了一個重要的研究方向。目前移動終端操作系統(tǒng)種類繁多,主流的有安卓和1S兩款。
[0003]近年來,人們的通信方式發(fā)生了很大的改變,網(wǎng)上信息交流已成為一種快捷的、時尚的、必不可少的通信方式。網(wǎng)絡(luò)聊天的普及,使得用戶對于聊天類型的需求越來越多,需要傳輸不同的格式內(nèi)容,如純文字、圖片、圖片+文字、語音、視頻、音樂等格式。因此聊天類型的多樣性,便成為我們研究的對象。面對如此多的聊天類型,用戶不可能為每種聊天類型定義不同的消息協(xié)議,所以我們提出一套通用的可擴(kuò)展性的消息主體容器,客戶端可自擬消息主體格式。
[0004]現(xiàn)有文獻(xiàn)《基于Android手機(jī)平臺的多媒體短信系統(tǒng)的研究》,通信與網(wǎng)絡(luò)(2015年16期),開發(fā)了一種多功能的手機(jī)多媒體短信系統(tǒng),該系統(tǒng)使用Android手機(jī)平臺在智能手機(jī)上開發(fā)的一個通信軟件,它可以在安裝本軟件的手機(jī)用戶之間發(fā)送多媒體短信(包括文字、圖片、動畫、音頻、視頻)。該系統(tǒng)分服務(wù)器端和客戶端,客戶端與服務(wù)器端通過Socket建立連接,用戶之間以JSON數(shù)據(jù)的形式傳送數(shù)據(jù)。而由于JSON采用冒號賦值,這將導(dǎo)致當(dāng)XML轉(zhuǎn)化為JSON時,在標(biāo)識符與實際屬性值之間很難區(qū)分誰應(yīng)該被當(dāng)作文本考慮,給數(shù)據(jù)的解析等帶來諸多麻煩,且不具可擴(kuò)展性。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本申請所要解決的技術(shù)問題是提供了一種用戶間可擴(kuò)展的通信方法及系統(tǒng),解決了現(xiàn)有技術(shù)的網(wǎng)絡(luò)社交系統(tǒng)中兩用戶或多用戶間消息傳送存在的一系列問題。
[0006]為了解決上述技術(shù)問題,本申請有如下技術(shù)方案:
[0007]本發(fā)明提供一種用戶間可擴(kuò)展的通信方法,包括:第一客戶端與第二客戶端定義統(tǒng)一的通用消息容器格式;所述第一客戶端將需要發(fā)送給所述第二客戶端的待發(fā)消息以所述通用消息容器格式封裝,形成第一消息容器;所述第一客戶端將包含所述第一消息容器的通信協(xié)議發(fā)送至第一長連接服務(wù)器;所述第一長連接服務(wù)器對所述通信協(xié)議中的協(xié)議頭進(jìn)行解析,并獲知所述通信協(xié)議下一步的發(fā)送方向,以及驗證所述第一消息容器內(nèi)容的格式;所述第一長連接服務(wù)器將所述通信協(xié)議發(fā)送至推送中心;所述推送中心從所述通信協(xié)議解析自身所需字段,并找到與所述第二客戶端連接的第二長連接服務(wù)器;所述第二長連接服務(wù)器將包括所述第一消息容器的通信協(xié)議轉(zhuǎn)發(fā)至所述第二客戶端;以及所述第二客戶端根據(jù)所述通用消息容器格式對所述第一消息容器進(jìn)行解析并顯示,所述第二客戶端向所述第一客戶端發(fā)送消息時與上述步驟相同,且所述第一客戶端與所述第二客戶端為不同客戶端。
[0008]本發(fā)明還提供一種用戶間可擴(kuò)展的通信系統(tǒng),包括:第一客戶端、第一長連接服務(wù)器、推送中心、第二客戶端、第二長連接服務(wù)器,其中所述第一客戶端,與第二客戶端和所述第一長連接服務(wù)器耦接,用于同所述第二客戶端共同定義統(tǒng)一的通用消息容器格式,以及將需要發(fā)送給所述第二客戶端的待發(fā)消息以所述通用消息容器格式封裝,形成第一消息容器,并將包括所述第一消息容器的通信協(xié)議發(fā)送至所述第一長連接服務(wù)器;所述第一長連接服務(wù)器,與所述第一客戶端和所述推送中心耦接,用于對協(xié)議中的協(xié)議頭進(jìn)行解析,并獲知所述通信協(xié)議下一步的發(fā)送方向,且將包括所述第一消息容器的通信協(xié)議發(fā)送至所述推送中心,以及驗證所述第一消息容器內(nèi)容的格式;所述推送中心,與所述第一長連接服務(wù)器和所述第二長連接服務(wù)器耦接,用于從所述通信協(xié)議解析自身所需字段,并找到與所述第二客戶端連接的第二長連接服務(wù)器;所述第二長連接服務(wù)器,與所述推送中心和所述第二客戶端耦接,用于將包括所述第一消息容器的通信協(xié)議轉(zhuǎn)發(fā)至所述第二客戶端;以及所述第二客戶端,與所述第一客戶端和所述第二長連接服務(wù)器耦接,用于根據(jù)所述通用消息容器格式對所述第一消息容器進(jìn)行解析并顯示,以及同所述第一客戶端共同定義統(tǒng)一的通用消息容器格式,其中,所述第一客戶端與所述第二客戶端為不同客戶端。
[0009]與現(xiàn)有技術(shù)相比,本申請所述的方法和系統(tǒng),達(dá)到了如下效果:
[0010]第一,本發(fā)明中長連接服務(wù)器和推送服務(wù)器只會解析其他字段,并不參與通用消息容器的解析,通用消息容器只在客戶端定義和解析,減少了服務(wù)器的工作量,提高效率;
[0011]第二,本發(fā)明中的通用消息容器具有非常好的可擴(kuò)展性,客戶端可根據(jù)自身需求自擬通用聊天容器的格式。
【附圖說明】
[0012]此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0013]圖1為本發(fā)明的所述一種用戶間可擴(kuò)展的通信方法流程圖;
[0014]圖2為本發(fā)明的所述一種用戶間可擴(kuò)展的通信系統(tǒng)結(jié)構(gòu)示意圖。
【具體實施方式】
[0015]如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達(dá)到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續(xù)描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目的,并非用以限定本申請的范圍。本申請的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
[0016]實施例1
[0017]參見圖1所示為本申請所述用戶間可擴(kuò)展的通信方法的具體實施例,本實施例中所述方法包括以下步驟:
[0018]步驟101:第一客戶端與第二客戶端定義統(tǒng)一的通用消息容器格式;
[0019]步驟102:所述第一客戶端將需要發(fā)送給所述第二客戶端的待發(fā)消息以所述通用消息容器格式封裝,形成第一消息容器;
[0020]步驟103:所述第一客戶端將包括所述第一消息容器的通信協(xié)議發(fā)送至第一長連接服務(wù)器;
[0021]步驟104:所述第一長連接服務(wù)器對所述通信協(xié)議中的協(xié)議頭進(jìn)行解析,且并不解析所述第一消息容器,通過協(xié)議頭的解析并獲知所述通信協(xié)議下一步的發(fā)送方向,如發(fā)送至推送中心,以及驗證所述第一消息容器內(nèi)容的格式,例如j son/xml格式,從而判斷所發(fā)送內(nèi)容是否正確;
[0022]步驟105:所述第一長連接服務(wù)器將包括所述第一消息容器的通信協(xié)議發(fā)送至推送中心;
[0023]步驟106:所述推送中心從協(xié)議解析自身所需字段,但并不解析所述第一消息容器,并找到與所述第二客戶端連接的第二長連接服務(wù)器;
[0024]步驟107:所述第二長連接服務(wù)器將包括所述第一消息容器的通信協(xié)議轉(zhuǎn)發(fā)至所述第二客戶端;以及
[0025]步驟108:所述第二客戶端根據(jù)所述通用消息容器格式對所述第一消息容器進(jìn)行解析并顯示,
[0026]所述第二客戶端向所述第一客戶端發(fā)送消息時與上述步驟相同,且所述第一客戶端與所述第二客戶端為不同客戶端。
[0027]其中,所述待發(fā)消息包括但不限于文本、圖片、語音及/或視頻。所述容器格式即將不同的消息流聯(lián)合起來加到一個文件(載體)里面,播放顯示時分別對該多條消息進(jìn)行解碼。
[0028]其中,所述通用消息容器格式不唯一,所述第一客戶端和所述第二客戶端應(yīng)根據(jù)自身需要設(shè)定。
[0029]其中,當(dāng)所述第一客戶端和所述第二客戶端為同一長連接服務(wù)器下的兩客戶端時,所述第一長連接服務(wù)器和所述第二長連接服務(wù)器為同一個服務(wù)器。
[0030]其中,所述通信協(xié)議包括所述第一消息容器、所述協(xié)議頭、公共頭和校驗內(nèi)容,其中所述公共頭包括所述第一客戶端的賬號信息,所述推送中心從協(xié)議解析自身所需字段包括所述協(xié)議頭、所述公共頭和所述第二客戶端賬號信息。
[0031]其中,所述長連接即客戶端發(fā)送一次連接請求后,不關(guān)閉連接,保持一段時間的連接,下次此客戶端再次請求時,不用創(chuàng)建新連接,復(fù)用所保持的連接即可。由此,長連接可以免去大量建立和關(guān)閉連接的資源消耗。
[0032]其中,所述容器可以自行擴(kuò)展,例如客戶端在初始時并不明確在需要存儲的消息種類及數(shù)量,即無法明確創(chuàng)建多大的內(nèi)存空間來保存消息,創(chuàng)建容器格式即不需要預(yù)先得知需要存儲的消息種類及數(shù)量