專利名稱:一種即時通信數據傳輸方法、客戶端、服務器及系統的制作方法
技術領域:
本發明涉及數據傳輸技術領域,更具體地說,涉及一種即時通信數據傳輸方法、客戶端、服務器及系統。
背景技術:
隨著網絡技術的發展,IM (Instant Messenger,即時通信)作為一種即時在線通信系統得到了廣泛的應用。目前,頂的數據傳輸方式主要基于XMPP (The ExtensibleMessaging and Presence Protocol,可擴展通訊和表現協議),XMPP是一種基于XML(Extensible Markup Language,可擴展標記語言)架構的開放式協議,在IM的數據傳輸中,通過XMPP可將現場和上下文敏感信息標記嵌入到XML結構化數據中,通過在網絡中傳輸XML格式的數據實現IM的數據傳輸。 然而,XML作為一種可擴展標記語言,其格式復雜,具有其格式的文件較為龐大,這使得數據傳輸所占用的帶寬較大;同時作為XML格式數據的數據接收方,需要使用大量的代碼來解析XML格式的數據,這使得數據接收方需要具有異常復雜的代碼量,造成維護上的困難。
發明內容
有鑒于此,本發明實施例提供一種即時通信數據傳輸方法、客戶端、服務器及系統,以解決由于采用XML格式傳輸數據,而造成的數據傳輸所占用的帶寬較大,及數據接收方需具有異常復雜的代碼量來解析XML格式的數據,而造成的維護上的困難的問題。為實現上述目的,本發明實施例提供如下技術方案一種即時通信數據傳輸方法,包括向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流;通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器。其中,所述基礎數據包括與登錄請求對應的數據,或與會話對應的數據;所述與登錄請求對應的數據包括登錄身份標識號碼ID和登錄密碼;所述與會話對應的數據包括會話對象ID和會話內容。本發明實施例還提供一種即時通信數據傳輸方法,包括接收客戶端發送的傳輸控制協議TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道;接收所述客戶端在所述TCP傳輸通道上發送的Json數據流;對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;對所述基礎數據進行解析處理;依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容;將所述數據發送內容封裝為TCP協議對應的數據;采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流;通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。
其中,所述基礎數據包括與登錄請求對應的數據,或與會話對應的數據;當所述基礎數據包括與登錄請求對應的數據時,與所述登錄請求對應的數據對應的執行操作包括向發送所述基礎數據的客戶端返回登錄驗證結果;當所述基礎數據包括與會話對應的數據時,與所述會話對應的數據對應的執行操作包括向接收會話的客戶端轉發會話內容。本發明實施例還提供一種即時通信數據傳輸方法,包括向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;接收所述服務器在所述TCP傳輸通道上發送的Json數據流;對所述Json數據流進行拆包處理;對拆包后的數據進行解析處理,獲得所述服務器發送的數據內容。其中,所述服務器發送的數據內容包括登錄驗證結果或其他客戶端發送的會話內容。本發明實施例還提供一種客戶端,包括傳輸通道建立模塊,用于向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;基礎數據確定模塊,用于確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;封包模塊,用于采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流;發送模塊,用于通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器。本發明實施例還提供一種服務器,包括傳輸通道建立模塊,用于接收客戶端發送的傳輸控制協議TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道;接收模塊,用于接收所述客戶端在所述TCP傳輸通道上發送的Json數據流;拆包模塊,用于對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;解析模塊,用于對所述基礎數據進行解析處理;執行確定模塊,用于依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容;
封裝模塊,用于將所述數據發送內容封裝為TCP協議對應的數據;封包模塊,用于采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流;發送模塊,用于通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。本發明實施例還提供一種客戶端,包括傳輸通道建立模塊,用于向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;接收模塊,用于接收所述服務器在所述TCP傳輸通道上發送的Json數據流;拆包模塊,用于對所述Json數據流進行拆包處理; 解析模塊,用于對拆包后的數據進行解析處理,獲得所述服務器發送的數據內容。
本發明實施例還提供一種即時通信數據傳輸系統,包括客戶端和服務器所述客戶端,用于向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道,確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據,采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流,通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器;所述服務器,用于接收客戶端發送的TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道,接收所述客戶端在所述TCP傳輸通道上發送的Json數據流,對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據,對所述基礎數據進行解析處理,依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容,將所述數據發送內容封裝為TCP協議對應的數據,采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流,通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。基于上述技術方案,本發明實施例并不采用XML格式傳輸數據,在確定了客戶端的待發送的經過TCP協議封裝的基礎數據后,則是將基礎數據以Json格式進行封包處理,生成Json數據流,在建立的與服務器相連的TCP傳輸通道上傳輸TCP協議對應的Json格式協議數據,進而實現IM數據傳輸。由于本發明實施例用于數據交換所采用的Json格式是一種輕量級的數據交換格式,易于閱讀和編寫,同時也易于機器解析和生成,因此解決了由于采用XML格式傳輸數據,而造成的數據傳輸所占用的帶寬較大,及數據接收方需具有異常復雜的代碼量來解析XML格式的數據,而造成的維護上的困難的問題;本發明實施例提供的即時通信的數據傳輸方法,有效地降低了網絡帶寬的占用,提升了數據接收方對數據的解析速度,同時采用Json格式進行IM數據傳輸,還可實現舊版本的IM客戶端與新版本的IM客戶端并存,增加了兼容性,還能夠實現跨平臺之間的即時通信服務。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本發明實施例提供的即時通信數據傳輸方法的流程圖;圖2為本發明實施例提供的即時通信數據傳輸方法的另一流程圖;圖3為本發明實施例提供的即時通信數據傳輸方法的又一流程圖;圖4為本發明實施例提供的客戶端的結構框圖;圖5為本發明實施例提供的服務器的結構框圖;圖6為本發明實施例提供的客戶端的另一結構框圖;圖7為本發明實施例提供的一種即時通信系統的結構框圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。圖I為本發明實施例提供的即時通信數據傳輸方法的流程圖,參照圖1,該方法可以包括步驟S100、向服務器發送 TCP (Transmission Control Protocol,傳輸控制協議)連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;本發明實施例中客戶端與服務器之間采用可擴展消息處理標準通信協議TCP協議,作為客戶端與服務器之間的數據傳輸協議;客戶端與服務器建立TCP連接,形成與所述服務器相連的TCP傳輸通道的過程可采用標準的三次握手協議建立連接,即客戶端向服務器SYN包,并進入SYN_SEND狀態,等待服務器確認,客戶端在收到服務器確認SYN包而發送的SYN+ACK包后,向服務器發送確認包ACK(ACK=y+l),此包發送完畢,客戶端和服務器進入Established狀態,客戶端與服務器的TCP連接建立完成,客戶端與服務器間形成TCP傳輸通道。其中,客戶端可以為手持設備,平板電腦,筆記本電腦,PC等終端;所建立的TCP傳輸通道可以為互聯網也可以為移動互聯網等網絡,具體可依照客戶端所接入的網絡類型進行相應調整。步驟S110、確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;本發明實施例中,客戶端主要實現的功能有對用戶身份進行驗證把用戶的登錄ID、登錄密碼發往IM服務器端驗證用戶是否可以合法使用該系統提供的資源和服務,即執行登錄請求操作;提供一組界面,供用戶獲取和使用該系統提供的資源;提供一組界面,供用戶和其他已登錄系統用戶進行文字、圖片、語音、名片、地理位置或者視頻聊天,或者進行文件傳送,即執行會話操作;提供一組界面,供多用戶進行群組聊天;提供一組界面,滿足用戶個人狀態、個人信息、軟件界面、軟件設置等個性化需求等。上述客戶端的大部分功能均與服務器相關,基礎數據為客戶端為實現上述功能而向服務器發送的經TCP協議封裝后的數據,如客戶端進行登錄請求時,與登錄請求對應的基礎數據可以包括登錄ID (IDentity,身份標識號碼)和登錄密碼,此處的登錄ID和登錄密碼經過TCP協議封裝,以滿足TCP協議傳輸要求;如客戶端在已登錄的狀態下,進行會話操作,則與會話對應的基礎數據可以包括會話對象的ID和會話內容,此處的會話對象ID和會話內容經過TCP協議封裝,以滿足TCP協議傳輸要求。步驟S120、采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流;本發明實施例的數據傳輸協議采用TCP協議,數據交換格式采用Json格式,因此在確定了待發送的經TCP協議封裝的基礎數據后,可采用Json格式對該基礎數據進行封包處理,以生成與TCP協議對應的Json數據流,該Json數據流為TCP通信協議的Json流。具體的,Json (JavaScript Object Notation)格式是一種輕量級的數據交換格式;對于Json對象結構而言,對象可以是名稱、值對的集合,采用Json格式可將一個對象的開始于(左括號),結束于(右括號),每個名稱后跟一個“”(冒號),名稱與值對之 間使用“,”(逗號)分割。對于Json的數組結構而言,一個數組開始于〃["(左中括號),結束于〃]〃(右中括號),值之間用〃,〃(逗號)分隔。采用上述Json格式對基礎數據進行封包處理,生成可以發送Json數據流。步驟S130、通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器。在經過了 TCP協議封裝,Json格式的數據封包后,可在與服務器相連的TCP傳輸通道上向服務器發送封包處理后的Json數據流,即在TCP上傳輸Json流,實現客戶端至服務器的即時通信數據傳輸。可選的,可采用Socket通信接口進行Json數據流的發送。現有技術中,客戶端的基礎數據是被格式化成XML格式的數據,通過在網絡上傳輸XML格式的數據實現的IM數據傳輸,這造成了數據傳輸需占較大帶寬,數據接收方需具備大量代碼解析XML格式的數據等問題。而本發明實施例并不采用XML格式傳輸數據,在確定了客戶端的待發送的經過TCP協議封裝的基礎數據后,則是將基礎數據以Json格式進行封包處理,生成Json數據流,在建立的與服務器相連的TCP傳輸通道上傳輸TCP協議對應的Json格式協議數據,進而實現IM數據傳輸。由于本發明實施例用于數據交換所采用的Json格式是一種輕量級的數據交換格式,易于閱讀和編寫,同時也易于機器解析和生成,因此解決了由于采用XML格式傳輸數據,而造成的數據傳輸所占用的帶寬較大,及數據接收方需具有異常復雜的代碼量來解析XML格式的數據,而造成的維護上的困難的問題;本發明實施例提供的即時通信的數據傳輸方法,有效地降低了網絡帶寬的占用,提升了數據接收方對數據的解析速度,同時采用Json格式進行IM數據傳輸,還可實現舊版本的IM客戶端與新版本的頂客戶端并存,增加了兼容性,還能夠實現跨平臺之間的即時通信服務。圖2為本發明實施例提供的即時通信數據傳輸方法的另一流程圖,參照圖2,該方法可以包括步驟S200、接收客戶端發送的TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道;本發明實施例服務器與客戶端之間采用TCP傳輸協議,建立TCP傳輸通道的過程可以通過標準的三次握手協議實現。步驟S210、接收所述客戶端在所述TCP傳輸通道上發送的Json數據流;本發明實施例中客戶端采用Json格式的數據進行數據交換,協議數據是以Json格式在網絡中進行傳輸,而不是如現有技術采用XML格式進行數據傳輸。步驟S220、對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;其中,對Json格式的數據流所進行的拆包處理為封包處理的逆過程,在對Json格式的數據流進行拆包處理后,將得到經過TCP協議封裝后的基礎數據,該基礎數據中包含客戶端向服務器發送的要求實現某一功能的數據。步驟S230、對所述基礎數據進行解析處理;通過解析可拆除基礎數據的TCP協議封裝,可獲得基礎數據中客戶端向服務器發送的要求實現某一功能的數據,通過對這些數據進行分析可確定客服端的執行操作。步驟S240、依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所 述執行操作對應的數據發送對象和數據發送內容;本發明實施例中客服端實現的功能主要有用戶注冊對來自個系統平臺的IM客戶端提供注冊功能,包含用戶信息的初始化與服務包括創建用戶ID、姓名、性別、年齡、頭像、手機號碼、電子郵件等內容。用戶登錄驗證對來自各系統平臺的IM客戶端登錄請求進行驗證,如果IM客戶端發來的用戶ID和密碼已經在用戶數據庫系統中存在,則允許IM客戶端登錄并使用頂服務器端的所有資源,否則拒絕用戶登錄;為各系統平臺的頂客戶端提供所需資源響應IM客戶端的請求、獲取相應的資源并發送到IM客戶端;消息路由接收、緩存、轉發、解析不同系統平臺頂客戶端之間的Json格式數據信息,并形成消息記錄,對IM客戶端未能接收的消息進行保存,在該頂客戶端可以接收時再進行轉發等。上述這些功能均需要客戶端進行觸發,具體的,客戶端可通過發送基礎數據進行上述服務器功能的觸發,本發明實施例中,客戶端通過Json格式進行基礎數據的封包發送,服務器接收Json數據流后,拆包Json格式數據,解析基礎數據后,將得到要求觸發對應的服務器功能的數據,服務器在確定需要執行的與基礎數據對應的操作后,即確定執行操作后,將進行對應的操作處理,確定操作處理后的數據發送對象和數據發送內容,該數據發送對象與數據發送內容與上述確定的執行操作對應。對于某些基礎數據對應的操作,如基礎數據為登錄請求,會話等對應的基礎數據時,服務器需要執行與基礎數據對應的操作,月艮務器向某些特定的客戶端發送數據,此時,服務器需要確定與所執行的操作對應的數據發送對象和數據發送內容。如基礎數據為登錄請求對應的基礎數據時,將觸發服務器的登錄驗證功能,服務器需要執行登錄驗證操作,進行登錄驗證后,需要向發送登錄請求對應的基礎數據的客戶端回應登錄驗證結果,此時,服務器確定的執行操作為登錄驗證操作,與登錄驗證操作對應的數據發送對象為發送登錄請求對應的基礎數據的客戶端,數據發送內容為登錄驗證結果;如基礎數據為會話對應的基礎數據時,將觸發服務器的消息路由功能,服務器將執行會話轉發操作,向接收會話的客戶端(即會話對應的基礎數據中所包括的會話對象ID對應的客戶端)轉發會話內容,此時,服務器確定的執行操作為會話轉發操作,與會話轉發操作對應的數據發送對象為接收會話的客戶端,數據發送內容為需要轉發的會話內容及會話發送客戶端的ID等信息。服務器所確定的與執行操作對應的數據發送對象和數據發送內容,可按照基礎數據所要求的服務器的具體功能的不同而做相應調整,本發明實施例對此并不設限。
步驟S250、將所述數據發送內容封裝為TCP協議對應的數據;在確定執行操作對應的數據發送對象和數據發送內容后,為滿足TCP協議的傳輸要求,需對數據發送內容進行TCP協議封裝。步驟S260、采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流;本發明實施例中,服務器對客戶端的數據交換,還是以Json格式進行,因此在數據發送內容進行TCP協議封裝后,對封裝后的數據進行Json格式的封包處理,生成TCP通信協議的Json流。步驟S270、通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。
此處的數據發送對象可以為基礎數據的發送客戶端,也可以是其他的客戶端,按照基礎數據所要求的服務器功能來確定。本發明實施例中,服務器在與客戶端建立的TCP傳輸通道上,以Json格式接收客戶端發送的TCP協議Json數據流,再通過服務器與數據發送對象對應的客戶端所建立的TCP傳輸通道,向數據發送對象對應的客戶端發送TCP協議Json數據流,通過Json格式進行TCP協議數據的交換,有效地降低了網絡帶寬的占用,提升了數據接收方對數據的解析速度,同時采用Json格式進行IM數據傳輸,還可實現舊版本的IM客戶端與新版本的IM客戶端并存,增加了兼容性,還能夠實現跨平臺之間的即時通信服務。圖3為本發明實施例提供的即時通信數據傳輸方法的又一流程圖,參照圖3,該方法可以包括步驟S300、向服務器發送TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;該步驟與圖I所示步驟SlOO相同,可相互參照。步驟S310、接收所述服務器在所述TCP傳輸通道上發送的Json數據流;本發明實施例中服務器以Json格式進行TCP協議數據的傳輸,不再如現有技術采用XML格式進行數據傳輸。步驟S320、對所述Json數據流進行拆包處理;步驟S330、對拆包后的數據進行解析處理,獲得所述服務器發送的數據內容。此處服務器發送的內容可以為服務器回應客戶端的內容,如服務器針對客戶端的登錄請求所回應的登錄驗證結果,客戶端依據該登錄驗證結果,可進行后續的登錄流程,進而確定登錄成功或登錄失敗;服務器發送的內容還可以為服務器實現消息路由功能,而轉發的其他客戶端發送的消息。下面對本發明實施例提供的客戶端進行描述,下文描述的客戶端與上文圖I所示即時通信數據傳輸方法對應,兩者可相互參照。圖4為本發明實施例提供的客戶端的結構框圖,參照圖4,該客戶端可以包括傳輸通道建立模塊100,用于向服務器發送TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;基礎數據確定模塊110,用于確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;
封包模塊120,用于采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流;發送模塊130,用于通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器。本發明實施例提供的客戶端,在與服務器建立的TCP傳輸通道上,采用Json格式進行TCP協議數據的傳輸,進而實 現了 IM的數據傳輸,有效地降低了網絡帶寬的占用,提升了數據接收方對數據的解析速度,同時采用Json格式進行IM數據傳輸,還可實現舊版本的IM客戶端與新版本的IM客戶端并存,增加了兼容性,還能夠實現跨平臺之間的即時通信服務。下面對本發明實施例提供的服務器進行描述,下文描述的服務器與上文圖2所示即時通信數據傳輸方法對應,兩者可相互參照。圖5為本發明實施例提供的服務器的結構框圖,參照圖5,該服務器可以包括傳輸通道建立模塊200,用于接收客戶端發送的TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道;接收模塊210,用于接收所述客戶端在所述TCP傳輸通道上發送的Json數據流;拆包模塊220,用于對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;解析模塊230,用于對所述基礎數據進行解析處理;執行確定模塊240,用于依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容;封裝模塊250,用于將所述數據發送內容封裝為TCP協議對應的數據;封包模塊260,用于采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流;發送模塊270,用于通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。下面對本發明實施例提供的另一客戶端進行描述,下文所描述的客戶端與上文圖3所示即時通信數據傳輸方法對應,兩者可相互參照。圖6為本發明實施例提供的客戶端的另一結構框圖,參照圖6,該客戶端可以包括傳輸通道建立模塊300,用于向服務器發送TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;值得注意的是,此處的傳輸通道建立模塊300與圖4所示傳輸通道建立模塊100可相同。接收模塊310,用于接收所述服務器在所述TCP傳輸通道上發送的Json數據流;拆包模塊320,用于對所述Json數據流進行拆包處理;解析模塊330,用于對拆包后的數據進行解析處理,獲得所述服務器發送的數據內容。值得注意的是,在所獲取的服務器發送的數據內容為服務器回應客戶端的內容時,圖6所示客戶端可與圖4所示客戶端相集成,兩者同屬于一個客戶端。
圖7為本發明實施例提供的一種即時通信系統的結構框圖,參照圖7,該系統可以包括客戶端I和服務器2,其中,客戶端I,用于向服務器2發送TCP連接建立請求,建立與服務器2的TCP連接,形成與服務器2相連的TCP傳輸通道,確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據,采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流,通過所述TCP傳輸通道,將所述Json數據流發送給服務器2 ;服務器2,接收客戶端I發送的TCP連接建立請求,建立與客戶端I的TCP連接,形成與客戶端I相連的TCP傳輸通道,接收客戶端I在所述TCP傳輸通道上發送的Json數據流,對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據,對所述基礎數據進行解析處理,依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容,將所述數據發送內容封裝為TCP協議對應的數據,采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流,通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。·其中,服務器2確定的數據發送對象可依據基礎數據所要求的服務器功能的不同而做相應調整,該數據發送對象可以是客戶端I也可以是其他客戶端。本發明實施例中,客戶端與服務器之間采用Json格式進行TCP協議數據的傳輸,有效地降低了網絡帶寬的占用,提升了數據接收方對數據的解析速度,同時采用Json格式進行頂數據傳輸,還可實現舊版本的頂客戶端與新版本的頂客戶端并存,增加了兼容性,還能夠實現跨平臺之間的即時通信服務。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
權利要求
1.一種即時通信數據傳輸方法,其特征在于,包括 向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道; 確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據; 采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流; 通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器。
2.根據權利要求I所述的方法,其特征在于,所述基礎數據包括與登錄請求對應的數據,或與會話對應的數據; 所述與登錄請求對應的數據包括登錄身份標識號碼ID和登錄密碼; 所述與會話對應的數據包括會話對象ID和會話內容。
3.—種即時通信數據傳輸方法,其特征在于,包括 接收客戶端發送的傳輸控制協議TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道; 接收所述客戶端在所述TCP傳輸通道上發送的Json數據流; 對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據; 對所述基礎數據進行解析處理; 依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容; 將所述數據發送內容封裝為TCP協議對應的數據; 采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流;通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。
4.根據權利要求3所述的方法,其特征在于,所述基礎數據包括與登錄請求對應的數據,或與會話對應的數據; 當所述基礎數據包括與登錄請求對應的數據時,與所述登錄請求對應的數據對應的執行操作包括向發送所述基礎數據的客戶端返回登錄驗證結果; 當所述基礎數據包括與會話對應的數據時,與所述會話對應的數據對應的執行操作包括向接收會話的客戶端轉發會話內容。
5.一種即時通信數據傳輸方法,其特征在于,包括 向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道; 接收所述服務器在所述TCP傳輸通道上發送的Json數據流; 對所述Json數據流進行拆包處理; 對拆包后的數據進行解析處理,獲得所述服務器發送的數據內容。
6.根據權利要求5所述的方法,其特征在于,所述服務器發送的數據內容包括登錄驗證結果或其他客戶端發送的會話內容。
7.一種客戶端,其特征在于,包括 傳輸通道建立模塊,用于向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道; 基礎數據確定模塊,用于確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據; 封包模塊,用于采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流; 發送模塊,用于通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器。
8.一種服務器,其特征在于,包括 傳輸通道建立模塊,用于接收客戶端發送的傳輸控制協議TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道; 接收模塊,用于接收所述客戶端在所述TCP傳輸通道上發送的Json數據流; 拆包模塊,用于對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據; 解析模塊,用于對所述基礎數據進行解析處理; 執行確定模塊,用于依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容; 封裝模塊,用于將所述數據發送內容封裝為TCP協議對應的數據; 封包模塊,用于采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流; 發送模塊,用于通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。
9.一種客戶端,其特征在于,包括 傳輸通道建立模塊,用于向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道; 接收模塊,用于接收所述服務器在所述TCP傳輸通道上發送的Json數據流; 拆包模塊,用于對所述Json數據流進行拆包處理; 解析模塊,用于對拆包后的數據進行解析處理,獲得所述服務器發送的數據內容。
10.一種即時通信數據傳輸系統,其特征在于,包括客戶端和服務器 所述客戶端,用于向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道,確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據,采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流,通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器;所述服務器,用于接收客戶端發送的TCP連接建立請求,建立與所述客戶端的TCP連接,形成與所述客戶端相連的TCP傳輸通道,接收所述客戶端在所述TCP傳輸通道上發送的Json數據流,對所述Json數據流進行拆包處理,獲得所述客戶端發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據,對所述基礎數據進行解析處理,依據解析后的基礎數據,確定與所述基礎數據對應的執行操作,確定所述執行操作對應的數據發送對象和數據發送內容,將所述數據發送內容封裝為TCP協議對應的數據,采用Json格式對封裝后的數據進行封包處理,生成與TCP協議對應的Json數據流,通過與所述數據發送對象建立的TCP傳輸通道,向所述數據發送對象發送封包處理后的Json數據流。
全文摘要
本發明實施例提供一種即時通信數據傳輸方法、客戶端、服務器及系統,其中,方法可以包括向服務器發送傳輸控制協議TCP連接建立請求,建立與所述服務器的TCP連接,形成與所述服務器相連的TCP傳輸通道;確定待發送的基礎數據,所述基礎數據為經過TCP協議封裝后的數據;采用Json格式對所述基礎數據進行封包處理,生成與TCP協議對應的Json數據流;通過所述TCP傳輸通道,將所述Json數據流發送給所述服務器。本發明采用Json進行IM數據交換,有效地降低了網絡帶寬的占用,提升了數據接收方對數據的解析速度,增加了兼容性,還實現了跨平臺之間的即時通信服務。
文檔編號H04L29/08GK102882772SQ201210390830
公開日2013年1月16日 申請日期2012年10月15日 優先權日2012年10月15日
發明者王本銳, 姜國飛 申請人:北京推博信息技術有限公司