一种即时通信数据传输方法、客户端、服务器及系统 
摘要
本发明实施例提供一种即时通信数据传输方法、客户端、服务器及系统,其中,方法可以包括:向服务器发送传输控制协议TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;确定待发送的基础数据,所述基础数据为经过TCP协议封装后的数据;采用Json格式对所述基础数据进行封包处理,生成与TCP协议对应的Json数据流;通过所述TCP传输通道,将所述Json数据流发送给所述服务器。本发明采用Json进行IM数据交换,有效地降低了网络带宽的占用,提升了数据接收方对数据的解析速度,增加了兼容性,还实现了跨平台之间的即时通信服务。
说明

—种即时通信数据传输方法、客户端、服务器及系统

技术领域

[0001] 本发明涉及数据传输技术领域,更具体地说,涉及一种即时通信数据传输方法、客户端、服务器及系统。

背景技术

[0002] 随着网络技术的发展,IM (Instant Messenger,即时通信)作为一种即时在线通信系统得到了广泛的应用。目前,頂的数据传输方式主要基于XMPP (The ExtensibleMessaging and Presence Protocol,可扩展通讯和表现协议),XMPP是一种基于XML(Extensible Markup Language,可扩展标记语言)架构的开放式协议,在IM的数据传输中,通过XMPP可将现场和上下文敏感信息标记嵌入到XML结构化数据中,通过在网络中传输XML格式的数据实现IM的数据传输。

[0003] 然而,XML作为一种可扩展标记语言,其格式复杂,具有其格式的文件较为庞大,这使得数据传输所占用的带宽较大;同时作为XML格式数据的数据接收方,需要使用大量的代码来解析XML格式的数据,这使得数据接收方需要具有异常复杂的代码量,造成维护上的困难。

发明内容

[0004] 有鉴于此,本发明实施例提供一种即时通信数据传输方法、客户端、服务器及系统,以解决由于采用XML格式传输数据,而造成的数据传输所占用的带宽较大,及数据接收方需具有异常复杂的代码量来解析XML格式的数据,而造成的维护上的困难的问题。

[0005] 为实现上述目的,本发明实施例提供如下技术方案:

[0006] 一种即时通信数据传输方法,包括:

[0007] 向服务器发送传输控制协议TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0008] 确定待发送的基础数据,所述基础数据为经过TCP协议封装后的数据;

[0009] 采用Json格式对所述基础数据进行封包处理,生成与TCP协议对应的Json数据流;

[0010] 通过所述TCP传输通道,将所述Json数据流发送给所述服务器。

[0011] 其中,所述基础数据包括:与登录请求对应的数据,或与会话对应的数据;

[0012] 所述与登录请求对应的数据包括:登录身份标识号码ID和登录密码;

[0013] 所述与会话对应的数据包括:会话对象ID和会话内容。

[0014] 本发明实施例还提供一种即时通信数据传输方法,包括:

[0015] 接收客户端发送的传输控制协议TCP连接建立请求,建立与所述客户端的TCP连接,形成与所述客户端相连的TCP传输通道;

[0016] 接收所述客户端在所述TCP传输通道上发送的Json数据流;

[0017] 对所述Json数据流进行拆包处理,获得所述客户端发送的基础数据,所述基础数据为经过TCP协议封装后的数据;

[0018] 对所述基础数据进行解析处理;

[0019] 依据解析后的基础数据,确定与所述基础数据对应的执行操作,确定所述执行操作对应的数据发送对象和数据发送内容;

[0020] 将所述数据发送内容封装为TCP协议对应的数据;

[0021] 采用Json格式对封装后的数据进行封包处理,生成与TCP协议对应的Json数据流;

[0022] 通过与所述数据发送对象建立的TCP传输通道,向所述数据发送对象发送封包处理后的Json数据流。 [0023] 其中,所述基础数据包括:与登录请求对应的数据,或与会话对应的数据;

[0024] 当所述基础数据包括与登录请求对应的数据时,与所述登录请求对应的数据对应的执行操作包括:向发送所述基础数据的客户端返回登录验证结果;

[0025] 当所述基础数据包括与会话对应的数据时,与所述会话对应的数据对应的执行操作包括:向接收会话的客户端转发会话内容。

[0026] 本发明实施例还提供一种即时通信数据传输方法,包括:

[0027] 向服务器发送传输控制协议TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0028] 接收所述服务器在所述TCP传输通道上发送的Json数据流;

[0029] 对所述Json数据流进行拆包处理;

[0030] 对拆包后的数据进行解析处理,获得所述服务器发送的数据内容。

[0031] 其中,所述服务器发送的数据内容包括:登录验证结果或其他客户端发送的会话内容。

[0032] 本发明实施例还提供一种客户端,包括:

[0033] 传输通道建立模块,用于向服务器发送传输控制协议TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0034] 基础数据确定模块,用于确定待发送的基础数据,所述基础数据为经过TCP协议封装后的数据;

[0035] 封包模块,用于采用Json格式对所述基础数据进行封包处理,生成与TCP协议对应的Json数据流;

[0036] 发送模块,用于通过所述TCP传输通道,将所述Json数据流发送给所述服务器。

[0037] 本发明实施例还提供一种服务器,包括:

[0038] 传输通道建立模块,用于接收客户端发送的传输控制协议TCP连接建立请求,建立与所述客户端的TCP连接,形成与所述客户端相连的TCP传输通道;

[0039] 接收模块,用于接收所述客户端在所述TCP传输通道上发送的Json数据流;

[0040] 拆包模块,用于对所述Json数据流进行拆包处理,获得所述客户端发送的基础数据,所述基础数据为经过TCP协议封装后的数据;

[0041] 解析模块,用于对所述基础数据进行解析处理;

[0042] 执行确定模块,用于依据解析后的基础数据,确定与所述基础数据对应的执行操作,确定所述执行操作对应的数据发送对象和数据发送内容;[0043] 封装模块,用于将所述数据发送内容封装为TCP协议对应的数据;

[0044] 封包模块,用于采用Json格式对封装后的数据进行封包处理,生成与TCP协议对应的Json数据流;

[0045] 发送模块,用于通过与所述数据发送对象建立的TCP传输通道,向所述数据发送对象发送封包处理后的Json数据流。

[0046] 本发明实施例还提供一种客户端,包括:

[0047] 传输通道建立模块,用于向服务器发送传输控制协议TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0048] 接收模块,用于接收所述服务器在所述TCP传输通道上发送的Json数据流;

[0049] 拆包模块,用于对所述Json数据流进行拆包处理;

[0050] 解析模块,用于对拆包后的数据进行解析处理,获得所述服务器发送的数据内容。[0051 ] 本发明实施例还提供一种即时通信数据传输系统,包括:客户端和服务器

[0052] 所述客户端,用于向服务器发送传输控制协议TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道,确定待发送的基础数据,所述基础数据为经过TCP协议封装后的数据,采用Json格式对所述基础数据进行封包处理,生成与TCP协议对应的Json数据流,通过所述TCP传输通道,将所述Json数据流发送给所述服务器;

[0053] 所述服务器,用于接收客户端发送的TCP连接建立请求,建立与所述客户端的TCP连接,形成与所述客户端相连的TCP传输通道,接收所述客户端在所述TCP传输通道上发送的Json数据流,对所述Json数据流进行拆包处理,获得所述客户端发送的基础数据,所述基础数据为经过TCP协议封装后的数据,对所述基础数据进行解析处理,依据解析后的基础数据,确定与所述基础数据对应的执行操作,确定所述执行操作对应的数据发送对象和数据发送内容,将所述数据发送内容封装为TCP协议对应的数据,采用Json格式对封装后的数据进行封包处理,生成与TCP协议对应的Json数据流,通过与所述数据发送对象建立的TCP传输通道,向所述数据发送对象发送封包处理后的Json数据流。

[0054] 基于上述技术方案,本发明实施例并不采用XML格式传输数据,在确定了客户端的待发送的经过TCP协议封装的基础数据后,则是将基础数据以Json格式进行封包处理,生成Json数据流,在建立的与服务器相连的TCP传输通道上传输TCP协议对应的Json格式协议数据,进而实现IM数据传输。由于本发明实施例用于数据交换所采用的Json格式是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,因此解决了由于采用XML格式传输数据,而造成的数据传输所占用的带宽较大,及数据接收方需具有异常复杂的代码量来解析XML格式的数据,而造成的维护上的困难的问题;本发明实施例提供的即时通信的数据传输方法,有效地降低了网络带宽的占用,提升了数据接收方对数据的解析速度,同时采用Json格式进行IM数据传输,还可实现旧版本的IM客户端与新版本的IM客户端并存,增加了兼容性,还能够实现跨平台之间的即时通信服务。

附图说明

[0055] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

[0056] 图I为本发明实施例提供的即时通信数据传输方法的流程图;

[0057] 图2为本发明实施例提供的即时通信数据传输方法的另一流程图;

[0058] 图3为本发明实施例提供的即时通信数据传输方法的又一流程图;

[0059] 图4为本发明实施例提供的客户端的结构框图;

[0060] 图5为本发明实施例提供的服务器的结构框图;

[0061] 图6为本发明实施例提供的客户端的另一结构框图;

[0062] 图7为本发明实施例提供的一种即时通信系统的结构框图。

具体实施方式

[0063] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

[0064] 图I为本发明实施例提供的即时通信数据传输方法的流程图,参照图1,该方法可以包括:

[0065]步骤 S100、向服务器发送 TCP (Transmission Control Protocol,传输控制协议)连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0066] 本发明实施例中客户端与服务器之间采用可扩展消息处理标准通信协议TCP协议,作为客户端与服务器之间的数据传输协议;客户端与服务器建立TCP连接,形成与所述服务器相连的TCP传输通道的过程可采用标准的三次握手协议建立连接,即客户端向服务器SYN包,并进入SYN_SEND状态,等待服务器确认,客户端在收到服务器确认SYN包而发送的SYN+ACK包后,向服务器发送确认包ACK(ACK=y+l),此包发送完毕,客户端和服务器进入Established状态,客户端与服务器的TCP连接建立完成,客户端与服务器间形成TCP传输通道。

[0067] 其中,客户端可以为手持设备,平板电脑,笔记本电脑,PC等终端;所建立的TCP传输通道可以为互联网也可以为移动互联网等网络,具体可依照客户端所接入的网络类型进行相应调整。

[0068] 步骤S110、确定待发送的基础数据,所述基础数据为经过TCP协议封装后的数据;

[0069] 本发明实施例中,客户端主要实现的功能有对用户身份进行验证:把用户的登录ID、登录密码发往IM服务器端验证用户是否可以合法使用该系统提供的资源和服务,即执行登录请求操作;提供一组界面,供用户获取和使用该系统提供的资源;提供一组界面,供用户和其他已登录系统用户进行文字、图片、语音、名片、地理位置或者视频聊天,或者进行文件传送,即执行会话操作;提供一组界面,供多用户进行群组聊天;提供一组界面,满足用户个人状态、个人信息、软件界面、软件设置等个性化需求等。

[0070] 上述客户端的大部分功能均与服务器相关,基础数据为客户端为实现上述功能而向服务器发送的经TCP协议封装后的数据,如客户端进行登录请求时,与登录请求对应的基础数据可以包括登录ID (IDentity,身份标识号码)和登录密码,此处的登录ID和登录密码经过TCP协议封装,以满足TCP协议传输要求;如客户端在已登录的状态下,进行会话操作,则与会话对应的基础数据可以包括会话对象的ID和会话内容,此处的会话对象ID和会话内容经过TCP协议封装,以满足TCP协议传输要求。

[0071] 步骤S120、采用Json格式对所述基础数据进行封包处理,生成与TCP协议对应的Json数据流;

[0072] 本发明实施例的数据传输协议采用TCP协议,数据交换格式采用Json格式,因此在确定了待发送的经TCP协议封装的基础数据后,可采用Json格式对该基础数据进行封包处理,以生成与TCP协议对应的Json数据流,该Json数据流为TCP通信协议的Json流。

[0073] 具体的,Json (JavaScript Object Notation)格式是一种轻量级的数据交换格式;对于Json对象结构而言,对象可以是名称、值对的集合,采用Json格式可将一个对象的开始于(左括号),结束于(右括号),每个名称后跟一个“:”(冒号),名称与值对之 间使用“,”(逗号)分割。对于Json的数组结构而言,一个数组开始于〃["(左中括号),结束于〃]〃(右中括号),值之间用〃,〃(逗号)分隔。采用上述Json格式对基础数据进行封包处理,生成可以发送Json数据流。

[0074] 步骤S130、通过所述TCP传输通道,将所述Json数据流发送给所述服务器。

[0075] 在经过了 TCP协议封装,Json格式的数据封包后,可在与服务器相连的TCP传输通道上向服务器发送封包处理后的Json数据流,即在TCP上传输Json流,实现客户端至服务器的即时通信数据传输。

[0076] 可选的,可采用Socket通信接口进行Json数据流的发送。

[0077] 现有技术中,客户端的基础数据是被格式化成XML格式的数据,通过在网络上传输XML格式的数据实现的IM数据传输,这造成了数据传输需占较大带宽,数据接收方需具备大量代码解析XML格式的数据等问题。而本发明实施例并不采用XML格式传输数据,在确定了客户端的待发送的经过TCP协议封装的基础数据后,则是将基础数据以Json格式进行封包处理,生成Json数据流,在建立的与服务器相连的TCP传输通道上传输TCP协议对应的Json格式协议数据,进而实现IM数据传输。由于本发明实施例用于数据交换所采用的Json格式是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,因此解决了由于采用XML格式传输数据,而造成的数据传输所占用的带宽较大,及数据接收方需具有异常复杂的代码量来解析XML格式的数据,而造成的维护上的困难的问题;本发明实施例提供的即时通信的数据传输方法,有效地降低了网络带宽的占用,提升了数据接收方对数据的解析速度,同时采用Json格式进行IM数据传输,还可实现旧版本的IM客户端与新版本的頂客户端并存,增加了兼容性,还能够实现跨平台之间的即时通信服务。

[0078] 图2为本发明实施例提供的即时通信数据传输方法的另一流程图,参照图2,该方法可以包括:

[0079] 步骤S200、接收客户端发送的TCP连接建立请求,建立与所述客户端的TCP连接,形成与所述客户端相连的TCP传输通道;

[0080] 本发明实施例服务器与客户端之间采用TCP传输协议,建立TCP传输通道的过程可以通过标准的三次握手协议实现。

[0081] 步骤S210、接收所述客户端在所述TCP传输通道上发送的Json数据流;

[0082] 本发明实施例中客户端采用Json格式的数据进行数据交换,协议数据是以Json格式在网络中进行传输,而不是如现有技术采用XML格式进行数据传输。

[0083] 步骤S220、对所述Json数据流进行拆包处理,获得所述客户端发送的基础数据,所述基础数据为经过TCP协议封装后的数据;

[0084] 其中,对Json格式的数据流所进行的拆包处理为封包处理的逆过程,在对Json格式的数据流进行拆包处理后,将得到经过TCP协议封装后的基础数据,该基础数据中包含客户端向服务器发送的要求实现某一功能的数据。

[0085] 步骤S230、对所述基础数据进行解析处理;

[0086] 通过解析可拆除基础数据的TCP协议封装,可获得基础数据中客户端向服务器发送的要求实现某一功能的数据,通过对这些数据进行分析可确定客服端的执行操作。

[0087] 步骤S240、依据解析后的基础数据,确定与所述基础数据对应的执行操作,确定所 述执行操作对应的数据发送对象和数据发送内容;

[0088] 本发明实施例中客服端实现的功能主要有用户注册:对来自个系统平台的IM客户端提供注册功能,包含用户信息的初始化与服务:包括创建用户ID、姓名、性别、年龄、头像、手机号码、电子邮件等内容。用户登录验证:对来自各系统平台的IM客户端登录请求进行验证,如果IM客户端发来的用户ID和密码已经在用户数据库系统中存在,则允许IM客户端登录并使用頂服务器端的所有资源,否则拒绝用户登录;为各系统平台的頂客户端提供所需资源:响应IM客户端的请求、获取相应的资源并发送到IM客户端;消息路由:接收、缓存、转发、解析不同系统平台頂客户端之间的Json格式数据信息,并形成消息记录,对IM客户端未能接收的消息进行保存,在该頂客户端可以接收时再进行转发等。

[0089] 上述这些功能均需要客户端进行触发,具体的,客户端可通过发送基础数据进行上述服务器功能的触发,本发明实施例中,客户端通过Json格式进行基础数据的封包发送,服务器接收Json数据流后,拆包Json格式数据,解析基础数据后,将得到要求触发对应的服务器功能的数据,服务器在确定需要执行的与基础数据对应的操作后,即确定执行操作后,将进行对应的操作处理,确定操作处理后的数据发送对象和数据发送内容,该数据发送对象与数据发送内容与上述确定的执行操作对应。对于某些基础数据对应的操作,如基础数据为登录请求,会话等对应的基础数据时,服务器需要执行与基础数据对应的操作,月艮务器向某些特定的客户端发送数据,此时,服务器需要确定与所执行的操作对应的数据发送对象和数据发送内容。

[0090] 如基础数据为登录请求对应的基础数据时,将触发服务器的登录验证功能,服务器需要执行登录验证操作,进行登录验证后,需要向发送登录请求对应的基础数据的客户端回应登录验证结果,此时,服务器确定的执行操作为登录验证操作,与登录验证操作对应的数据发送对象为发送登录请求对应的基础数据的客户端,数据发送内容为登录验证结果;如基础数据为会话对应的基础数据时,将触发服务器的消息路由功能,服务器将执行会话转发操作,向接收会话的客户端(即会话对应的基础数据中所包括的会话对象ID对应的客户端)转发会话内容,此时,服务器确定的执行操作为会话转发操作,与会话转发操作对应的数据发送对象为接收会话的客户端,数据发送内容为需要转发的会话内容及会话发送客户端的ID等信息。

[0091] 服务器所确定的与执行操作对应的数据发送对象和数据发送内容,可按照基础数据所要求的服务器的具体功能的不同而做相应调整,本发明实施例对此并不设限。[0092] 步骤S250、将所述数据发送内容封装为TCP协议对应的数据;

[0093] 在确定执行操作对应的数据发送对象和数据发送内容后,为满足TCP协议的传输要求,需对数据发送内容进行TCP协议封装。

[0094] 步骤S260、采用Json格式对封装后的数据进行封包处理,生成与TCP协议对应的Json数据流;

[0095] 本发明实施例中,服务器对客户端的数据交换,还是以Json格式进行,因此在数据发送内容进行TCP协议封装后,对封装后的数据进行Json格式的封包处理,生成TCP通信协议的Json流。

[0096] 步骤S270、通过与所述数据发送对象建立的TCP传输通道,向所述数据发送对象发送封包处理后的Json数据流。 [0097] 此处的数据发送对象可以为基础数据的发送客户端,也可以是其他的客户端,按照基础数据所要求的服务器功能来确定。

[0098] 本发明实施例中,服务器在与客户端建立的TCP传输通道上,以Json格式接收客户端发送的TCP协议Json数据流,再通过服务器与数据发送对象对应的客户端所建立的TCP传输通道,向数据发送对象对应的客户端发送TCP协议Json数据流,通过Json格式进行TCP协议数据的交换,有效地降低了网络带宽的占用,提升了数据接收方对数据的解析速度,同时采用Json格式进行IM数据传输,还可实现旧版本的IM客户端与新版本的IM客户端并存,增加了兼容性,还能够实现跨平台之间的即时通信服务。

[0099] 图3为本发明实施例提供的即时通信数据传输方法的又一流程图,参照图3,该方法可以包括:

[0100] 步骤S300、向服务器发送TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0101] 该步骤与图I所示步骤SlOO相同,可相互参照。

[0102] 步骤S310、接收所述服务器在所述TCP传输通道上发送的Json数据流;

[0103] 本发明实施例中服务器以Json格式进行TCP协议数据的传输,不再如现有技术采用XML格式进行数据传输。

[0104] 步骤S320、对所述Json数据流进行拆包处理;

[0105] 步骤S330、对拆包后的数据进行解析处理,获得所述服务器发送的数据内容。

[0106] 此处服务器发送的内容可以为服务器回应客户端的内容,如服务器针对客户端的登录请求所回应的登录验证结果,客户端依据该登录验证结果,可进行后续的登录流程,进而确定登录成功或登录失败;服务器发送的内容还可以为服务器实现消息路由功能,而转发的其他客户端发送的消息。

[0107] 下面对本发明实施例提供的客户端进行描述,下文描述的客户端与上文图I所示即时通信数据传输方法对应,两者可相互参照。

[0108] 图4为本发明实施例提供的客户端的结构框图,参照图4,该客户端可以包括:

[0109] 传输通道建立模块100,用于向服务器发送TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0110] 基础数据确定模块110,用于确定待发送的基础数据,所述基础数据为经过TCP协议封装后的数据;[0111] 封包模块120,用于采用Json格式对所述基础数据进行封包处理,生成与TCP协议对应的Json数据流;

[0112] 发送模块130,用于通过所述TCP传输通道,将所述Json数据流发送给所述服务器。

[0113] 本发明实施例提供的客户端,在与服务器建立的TCP传输通道上,采用Json格式进行TCP协议数据的传输,进而实 现了 IM的数据传输,有效地降低了网络带宽的占用,提升了数据接收方对数据的解析速度,同时采用Json格式进行IM数据传输,还可实现旧版本的IM客户端与新版本的IM客户端并存,增加了兼容性,还能够实现跨平台之间的即时通信服务。

[0114] 下面对本发明实施例提供的服务器进行描述,下文描述的服务器与上文图2所示即时通信数据传输方法对应,两者可相互参照。

[0115] 图5为本发明实施例提供的服务器的结构框图,参照图5,该服务器可以包括:

[0116] 传输通道建立模块200,用于接收客户端发送的TCP连接建立请求,建立与所述客户端的TCP连接,形成与所述客户端相连的TCP传输通道;

[0117] 接收模块210,用于接收所述客户端在所述TCP传输通道上发送的Json数据流;

[0118] 拆包模块220,用于对所述Json数据流进行拆包处理,获得所述客户端发送的基础数据,所述基础数据为经过TCP协议封装后的数据;

[0119] 解析模块230,用于对所述基础数据进行解析处理;

[0120] 执行确定模块240,用于依据解析后的基础数据,确定与所述基础数据对应的执行操作,确定所述执行操作对应的数据发送对象和数据发送内容;

[0121] 封装模块250,用于将所述数据发送内容封装为TCP协议对应的数据;

[0122] 封包模块260,用于采用Json格式对封装后的数据进行封包处理,生成与TCP协议对应的Json数据流;

[0123] 发送模块270,用于通过与所述数据发送对象建立的TCP传输通道,向所述数据发送对象发送封包处理后的Json数据流。

[0124] 下面对本发明实施例提供的另一客户端进行描述,下文所描述的客户端与上文图3所示即时通信数据传输方法对应,两者可相互参照。

[0125] 图6为本发明实施例提供的客户端的另一结构框图,参照图6,该客户端可以包括:

[0126] 传输通道建立模块300,用于向服务器发送TCP连接建立请求,建立与所述服务器的TCP连接,形成与所述服务器相连的TCP传输通道;

[0127] 值得注意的是,此处的传输通道建立模块300与图4所示传输通道建立模块100可相同。

[0128] 接收模块310,用于接收所述服务器在所述TCP传输通道上发送的Json数据流;

[0129] 拆包模块320,用于对所述Json数据流进行拆包处理;

[0130] 解析模块330,用于对拆包后的数据进行解析处理,获得所述服务器发送的数据内容。

[0131] 值得注意的是,在所获取的服务器发送的数据内容为服务器回应客户端的内容时,图6所示客户端可与图4所示客户端相集成,两者同属于一个客户端。[0132] 图7为本发明实施例提供的一种即时通信系统的结构框图,参照图7,该系统可以包括:客户端I和服务器2,

[0133] 其中,客户端I,用于向服务器2发送TCP连接建立请求,建立与服务器2的TCP连接,形成与服务器2相连的TCP传输通道,确定待发送的基础数据,所述基础数据为经过TCP协议封装后的数据,采用Json格式对所述基础数据进行封包处理,生成与TCP协议对应的Json数据流,通过所述TCP传输通道,将所述Json数据流发送给服务器2 ;

[0134] 服务器2,接收客户端I发送的TCP连接建立请求,建立与客户端I的TCP连接,形成与客户端I相连的TCP传输通道,接收客户端I在所述TCP传输通道上发送的Json数据流,对所述Json数据流进行拆包处理,获得所述客户端发送的基础数据,所述基础数据为经过TCP协议封装后的数据,对所述基础数据进行解析处理,依据解析后的基础数据,确定与所述基础数据对应的执行操作,确定所述执行操作对应的数据发送对象和数据发送内容,将所述数据发送内容封装为TCP协议对应的数据,采用Json格式对封装后的数据进行封包处理,生成与TCP协议对应的Json数据流,通过与所述数据发送对象建立的TCP传输通道,向所述数据发送对象发送封包处理后的Json数据流。·

[0135] 其中,服务器2确定的数据发送对象可依据基础数据所要求的服务器功能的不同而做相应调整,该数据发送对象可以是客户端I也可以是其他客户端。

[0136] 本发明实施例中,客户端与服务器之间采用Json格式进行TCP协议数据的传输,有效地降低了网络带宽的占用,提升了数据接收方对数据的解析速度,同时采用Json格式进行頂数据传输,还可实现旧版本的頂客户端与新版本的頂客户端并存,增加了兼容性,还能够实现跨平台之间的即时通信服务。

[0137] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

[0138] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

[0139] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

[0140] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

一种即时通信数据传输方法、客户端、服务器及系统相关推荐

  1. 怎么用计算机算出年龄鞋码,一种预测鞋码的方法、装置和系统以及计算机可读存储介质与流程...

    本发明涉及一种预测鞋码的方法.装置和系统以及计算机可读存储介质,更具体而言,涉及一种利用多维变量的预测鞋码的方法.装置和系统以及计算机可读存储介质. 背景技术: 现今在网上购买衣服及其他物品已是非常之 ...

  2. uni-app 快速集成 IM 即时通信的方法——TUIKit 来啦

    uni-app 是目前比较火的跨平台框架,腾讯云即时通信 IM 正式推出支持三大平台的 uni-app TUIKit. TUIKit 是基于 IM SDK 实现的一套 UI 组件,其包含会话.聊天.群 ...

  3. 计算机卸载一个程序正确操作,电脑这两个操作要学会,两种卸载软件的方法,保证电脑系统稳定...

    现在上网冲浪大家都会,但是电脑玩专业的毕竟不是很多,大多数的人只会开电脑上上网,看看电影或玩玩游戏等,随着平常电脑上网久了难免会点错而不小心自动安装不少网上的垃圾软件或插件.如果电脑中安装的程序或上网 ...

  4. 即时通信方法、系统、装置和即时通信终端

    随着通信技术的快速发展,用户的交流方式也不再局限于拨打电话或者发 送短信,各种即时通信工具已经逐渐成为了用户之间进行沟通的最广泛的方式. 传统的即时通信技术是发送方根据接收方的地址或者账号等信息主动向 ...

  5. 机器人执行计算机程序提供的指令,巡检机器人抓拍方法、装置、系统及巡检机器人与流程...

    本发明属于机器人拍照技术领域,尤其涉及一种巡检机器人抓拍方法.装置.系统及巡检机器人. 背景技术: 伴随着我国社会经济稳步增长,越来越多的巨型企业厂区.高新园区.巨型商场不断的出现在国民生活中,这些场 ...

  6. 人工访客系统服务器地址,获取访客本地域名解析服务器的系统

    主权项: 一种获取访客本地域名解析服务器的系统,其特征在于包括以下子系统:探测重导子系统,由具有HTTP服务功能的Web服务器实现,它的作用是接收客户端的请求,记录下客户计算机的IP地址,然后为该次请 ...

  7. 一种客户端即时通信数据的加密和解密方法

    一种客户端即时通信数据的加密和解密方法  摘要 本发明适用于即时通信领域,提供了一种客户端即时通信数据的加密和解密方法,所述方法包括以下步骤:A.客户端加密本地保存的即时通信数据,并将数据加密密钥上传 ...

  8. Socket 通信原理(Android客户端和服务器以TCPUDP方式互通)

     ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教. 一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是So ...

  9. 【python网络编程】创建TCP/UDP服务器进行客户端/服务器间通信

    客户端/服务器网络编程介绍 套接字:通信端点 实例:客户端发送数据,接收服务器返回的时间戳 用Python 编写FTP 客户端程序 客户端/服务器网络编程介绍 软件服务器也运行在一块硬件之上,但是没有 ...

最新文章

  1. Matlab mean() mean2() std() 函数的使用
  2. DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)
  3. 如何下载最新版的 Adobe Flash Player
  4. 【C语言】控制台窗口图形界面编程(四):文本输出
  5. FilterDispatcher is deprecated!
  6. WMI使用技巧集 C#
  7. Mybatis判断int类型是否为空
  8. 内核并发控制---互斥量(来自网易)
  9. 操作系统可实训可练习的项目
  10. db 如何将数据库中的表导入到PowerDesigner
  11. 猴子数据让你深刻了解微信富媒体
  12. C++STL之整理算法
  13. java提取姓名与手机号码_java – 从手机号码中提取国家/地区代码
  14. 峨眉山徒步休闲三日游攻略内附详细时间
  15. 是时候关注邮件安全了
  16. 在输入框输入时限制输入框只能输入正整数以及两位小数正则表达式
  17. C#练习题答案: 寻找恩人【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
  18. 亚马逊测评自养号环境系统的介绍和用法
  19. 面向对象的PHP编程
  20. 20个JS精简代码无形装逼集合,最为致命,记得收藏好

热门文章

  1. 简单解释计算机内存与外存的关系,内存和外存概念的严格解析
  2. 乐吾乐2D可视化为智慧水务可视化赋能(二)
  3. JSD-2204-RESTful-Service-SpringMVC-Day06
  4. project 2016软件
  5. 爱德华·琼斯(Edward Jones)公司
  6. 人生的意义是通过努力活得更好
  7. 2023哈尔滨工业大学计算机考研信息汇总
  8. 快递鸟基于java功能打印电子面单api接口
  9. 字节跳动 C++面经总结第四期
  10. How to Write a Spelling Corrector代码注释