CN102025730B - 基于http协议的数据传输装置及其实现方法 - Google Patents
基于http协议的数据传输装置及其实现方法 Download PDFInfo
- Publication number
- CN102025730B CN102025730B CN 201010569013 CN201010569013A CN102025730B CN 102025730 B CN102025730 B CN 102025730B CN 201010569013 CN201010569013 CN 201010569013 CN 201010569013 A CN201010569013 A CN 201010569013A CN 102025730 B CN102025730 B CN 102025730B
- Authority
- CN
- China
- Prior art keywords
- message
- module
- request message
- client
- response message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于HTTP协议的数据传输系统,包括客户端子系统和服务端子系统;其中所述客户端子系统内部包括应用业务模块(C01)、请求消息缓冲模块(C02)、响应消息缓冲模块(C03)和请求消息发送模块(C04);所述服务端子系统内部包括请求消息接收模块(S01)、会话管理模块(S02)、请求消息缓冲模块(S03)、响应消息缓冲模块(S04)和请求消息处理模块(S05);通过所述客户端子系统将多个HTTP请求消息一次性发送给服务端子系统,所述服务端子系统接收处理所述HTTP请求消息,将响应消息和其它非请求响应消息一次性发送回所述客户端子系统,减小数据包的传送次数,提高了数据传输效率。
Description
技术领域
本发明涉及网络数据传输领域,尤其涉及一种基于HTTP协议的数据传输装置及其实现方法。
背景技术
目前在一些数据通信场合,往往需要选择HTTP协议来实现客户端和服务端之间的数据传输,而不是直接采用TCP协议。例如手机应用软件,由于手机信号具有时强时弱的特性,所以常常需要采用HTTP协议来实现与服务端之间的数据通信。又比如为了网络安全,某些网络环境只允许HTTP协议的数据包通过防火墙,在这些网络环境中的客户端或服务端软件也常常需要采用HTTP协议来实现数据通信。由于HTTP是一种请求/响应方式的传输协议,服务端和客户端之间的连接是断续的,所以在现有的一些实时性强或者数据传输量比较大的应用系统中, 采用HTTP协议常常会由于不断请求服务端造成数据传输的效率降低。
发明内容
本发明目的是提供一种基于HTTP协议的数据传输装置,以减少请求和回应发送次数的方式来提高HTTP协议的数据传输效率。
本发明基于HTTP协议的数据传输系统,包括发送请求的客户端子系统和响应请求的服务端子系统;其中所述客户端子系统内部包括应用业务模块C01、请求消息缓冲模块C02、响应消息缓冲模块C03和请求消息发送模块C04;所述服务端子系统内部包括请求消息接收模块S01、会话管理模块S02、请求消息缓冲模块S03、 响应消息缓冲模块S04和请求消息处理模块S05;
通过所述客户端子系统将多个HTTP请求消息一次性发送给服务端子系统,所述服务端子系统接收处理所述HTTP请求消息,将响应消息和其它非请求响应消息一次性发送回所述客户端子系统,减小数据包的传送次数。
进一步,所述客户端子系统和所述服务端子系统可以为功能集成化的服务器,里面加载了数据转发计算程序,所述服务器之间通过无线或有线网络通讯。
进一步,本发明还提供一种根据上述系统进行基于HTTP协议的数据传输方法,包括步骤
a、在客户端子系统设置一个请求消息缓冲模块和一个请求消息发送模块,所有客户端发起的HTTP请求消息先进入所述请求消息缓冲模块, 所述请求消息发送模块则循环地检测请求消息缓冲模块,一旦发现存在HTTP请求消息,则把所述请求消息缓冲模块中的所有HTTP请求消息按先后顺序一次性发送给服务端子系统;
b、所述服务端子系统接收处理所述HTTP请求消息,将响应消息和其它非请求响应消息一次性发送回所述客户端子系统,减小数据包的传送次数。
本发明中,在客户端设置一个请求消息缓冲模块和一个请求消息发送模块。所有客户端发起的请求消息先进入缓冲模块, 请求消息发送模块则循环地检测请求消息缓冲模块,一旦发现存在请求消息,则把缓冲模块中的所有请求消息按先后顺序一次性发送给服务端,并同时接收服务端的回应消息。如果在完成一次HTTP数据传输的时间之内,客户端发起新的请求消息大于一个的情况下,显而易见地节省了请求和回应的次数。
在现有技术中,服务端向客户端主动发送的消息,通常是需要客户端不断地发送HTTP请求才能获取。而在本发明中,只要客户端有任何HTTP请求过来,就能把这些主动请求消息和请求的回应消息一起发送回客户端,从而减少发送主动请求消息的次数和发送回应消息的次数,大大提高了传输的效率。
附图说明
图1是本发明实施例提供的基于HTTP协议的数据传输系统工作原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
如图1所示,本发明实施例提供的基于HTTP协议的数据传输系统,包括发送请求的客户端子系统和响应请求的服务端子系统;其中所述客户端子系统内部包括应用业务模块C01、请求消息缓冲模块C02、响应消息缓冲模块C03和请求消息发送模块C04;所述服务端子系统内部包括请求消息接收模块S01、会话管理模块S02 、请求消息缓冲模块S03、 响应消息缓冲模块S04和请求消息处理模块S05;通过所述客户端子系统将多个HTTP请求消息一次性发送给服务端子系统,服务端子系统接收处理所述HTTP请求消息,将响应消息和其它非请求响应消息一次性发送回所述客户端子系统,从而减小数据包的传送次数。
具体的在所述客户端子系统中:
所述应用业务模块C01,是请求消息的发起者,也是响应消息的请求者,它并不直接向服务端子系统发送消息请求和接收响应消息,而是用于将发送的请求消息存入请求消息缓冲模C02,并从响应消息缓冲模块C03取出响应消息逐一进行处理;需说明的是,应用业务模块C01发起的第一个消息必须是登录消息,以取得服务端子系统为该业务端模块分配的HTTP的会话号;
所述请求消息缓冲模块C02,用于存储发送消息,其内存缓冲区的消息遵循先进先出的原则;
所述响应消息缓冲模块C03,用于存储响应消息,其内存缓冲区的消息遵循先进先出的原则;
所述请求消息发送模块C04,用于将请求消息缓冲模块C02中当前保存的所有消息一次性读取, 并按消息的先后顺序逐个拷贝到HTTP的POST数据区,发送到服务端子系统;并接收所述服务端子系统的响应消息,解析为一个个独立的消息保存到所述响应消息缓冲模块C03中,等待所述应用业务模块C01进行处理。
在所述服务端子系统中:
所述请求消息接收模块S01,用于接收来自所述客户端子系统的请求消息,判断是否为登录消息,如果是则将请求消息递给所述会话管理模块S02进行处理,否则将请求消息分解为一个个原始的请求消息,然后传递到请求消息缓冲模块S03进行存储,同时将发送消息的客户端对应的所述响应消息缓冲模块S04中的计数器值设置为原始请求消息的数目;
所述会话管理模块S02,用于接收来自所述请求消息接收模块S01传递的登录消息,为该客户端生成一个新的会话号,并在请求消息缓冲模块或响应消息缓冲模块中创建一个对应的响应消息缓冲区;
所述请求消息缓冲模块S03,用于存储请求消息, 其内存缓冲区的消息遵循先进先出的原则;
所述响应消息缓冲模块S04,用于存储请求消息,还用于转发应用业务模块的消息给客户端子系统;每个客户端都对应一个缓冲模块,并包含一个计数器,用于记录尚未回应的请求消息数目,消息遵循先进先出的原则;
所述请求消息处理模块S05,是包含一个或多个处理线程,每个线程不断地逐个读取所述请求消息缓冲模块S03里边的消息并进行响应的处理,每响应一条消息,同时将客户端在服务端对应的响应消息缓冲区中的计数器值减一,如果发现计数器值为零,则将响应消息缓冲区中的所有消息一次性读取,按消息的先后顺序,逐个拷贝到HTTP消息的数据区发送回客户端;
所述应用业务模块 S06,用于将应用业务需要向客户端主动发送的消息传递到所述响应消息缓冲模块S04中存储,等待下一个客服端请求处理完成后一并发送到所述客户端子系统。
图1中对数据传输的方向如箭头所示,具体应用中,所述客户端子系统和所述服务端子系统可以为功能集成化的服务器,所述服务器之间通过无线或有线网络通讯。
本发明实施例还提供采用上述系统进行基于HTTP协议的数据传输方法,包括:
步骤a、在客户端子系统设置一个请求消息缓冲模块和一个请求消息发送模块,所有客户端发起的HTTP请求消息先进入所述请求消息缓冲模块, 所述请求消息发送模块则循环地检测请求消息缓冲模块,一旦发现存在HTTP请求消息,则把所述请求消息缓冲模块中的所有HTTP请求消息按先后顺序一次性发送给服务端子系统;
步骤b、所述服务端子系统接收处理所述HTTP请求消息,将响应消息和其它非请求响应消息一次性发送回所述客户端子系统,减小数据包的传送次数。
其中步骤b具体包括:
通过请求消息接收模块接收来自所述客户端子系统的请求消息,判断是否为登录消息,如果是则将请求消息递给会话管理模块进行处理,否则将请求消息分解为一个个原始的请求消息,然后传递到请求消息缓冲模块进行存储,同时将发送消息的客户端对应的响应消息缓冲模块中的计数器值设置为原始请求消息的数目;
通过会话管理模块接收来自请求消息接收模块传递的登录消息,并为该客户端生成一个新的会话号,并在请求消息缓冲模块或响应消息缓冲模块中创建一个对应的响应消息缓冲区;
通过所述请求消息处理模块里的每个处理线程不断地逐个读取请求消息缓冲模块里边的消息并进行响应的处理,每响应一条消息,同时将客户端在服务端对应的响应消息缓冲区中的计数器值减一,如果发现计数器值为零,则将响应消息缓冲区中的所有消息一次性读取,按消息的先后顺序,逐个拷贝到HTTP消息的数据区发送回客户端;
通过应用业务模块将应用业务需要向客户端主动发送的消息传递到所述响应消息缓冲模块中存储,等待下一个客服端请求处理完成后一并发送到所述客户端子系统。
利用本发明装置,在客户端可以将多个HTTP请求消息一次性发送给服务端,服务端接收到这些请求消息处理后也将响应消息并其它非请求响应消息一次性发送回客户端,从而减小了数据包的传送次数,提高了数据传输效率。
本发明的装置和方法具体应用实施例如下:比如在手机网络游戏项目中,往往因网络不够稳定、或者为方便用户(在大部分手机中HTTP协议是不需要设置连接参数的,TCP协议则需要用户自己去设置连接参数)等原因需要选择HTTP协议来实现数据传输。在该类项目中数据传输量大,实时性要求也较强:客户端一方面需要根据用户的具体操作向服务端请求特定的数据,另一方面也需要不断地将玩家的状态(如血量、战斗结果、在地图中的位置等)信息发送回服务端,同时还需要不断地请求服务端接收其它玩家的状态信息和服务端主动发送的其它信息;服务端则需要响应玩家具体的请求,并将其它玩家的状态信息、公会公告、聊天信息等主动发送到相关联的所有客户端。利用本发明装置来实现该类项目的HTTP数据传输,明显能提高数据传输的效率,从而提高游戏的流畅性和用户的体验感。
以上所述是本发明的优选实施方式而已,当然不能以此来限定本发明之权利范围,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变动,这些改进和变动也视为本发明的保护范围。
Claims (6)
1.一种基于HTTP协议的数据传输系统,其特征在于,包括发送请求的客户端子系统和响应请求的服务端子系统;其中所述客户端子系统内部包括应用业务模块(C01)、请求消息缓冲模块(C02)、响应消息缓冲模块(C03)和请求消息发送模块(C04);所述服务端子系统内部包括请求消息接收模块(S01)、会话管理模块(S02) 、请求消息缓冲模块(S03)、 响应消息缓冲模块(S04)和请求消息处理模块(S05);
通过所述客户端子系统将多个HTTP请求消息一次性发送给服务端子系统,所述服务端子系统接收处理所述HTTP请求消息,将响应消息和其它非请求响应消息一次性发送回所述客户端子系统,减小数据包的传送次数。
2.根据权利要求1所述基于HTTP协议的数据传输系统,其特征在于,在所述客户端子系统中:
所述应用业务模块(C01),用于将发送的请求消息存入请求消息缓冲模块(C02),并从响应消息缓冲模块(C03)取出响应消息逐一进行处理;
所述请求消息缓冲模块(C02),用于存储发送消息,其内存缓冲区的消息遵循先进先出的原则;
所述响应消息缓冲模块(C03),用于存储响应消息,其内存缓冲区的消息遵循先进先出的原则;
所述请求消息发送模块(C04),用于将请求消息缓冲模块(C02)中当前保存的所有消息一次性读取, 并按消息的先后顺序逐个拷贝到HTTP的POST数据区,发送到服务端子系统;并接收所述服务端子系统的响应消息,解析为一个个独立的消息保存到所述响应消息缓冲模块(C03)中,等待所述应用业务模块(C01)进行处理。
3.根据权利要求1 所述基于HTTP协议的数据传输系统,其特征在于,在所述服务端子系统中:
所述请求消息接收模块(S01),用于接收来自所述客户端子系统的请求消息,判断是否为登录消息,如果是则将该请求消息递给所述会话管理模块(S02)进行处理,否则将请求消息分解为一个个原始的请求消息,然后传递到请求消息缓冲模块(S03)进行存储,同时将发送消息的客户端对应的所述服务端子系统中的响应消息缓冲模块(S04)中的计数器值设置为原始请求消息的数目;
所述会话管理模块(S02),用于接收来自所述请求消息接收模块(S01)传递的登录消息,为该客户端生成一个新的会话号,并在请求消息缓冲模块(S03)或响应消息缓冲模块(S04)中创建一个对应的响应消息缓冲区;
所述请求消息缓冲模块(S03),用于存储请求消息, 其内存缓冲区的消息遵循先进先出的原则;
所述响应消息缓冲模块(S04),用于存储响应消息,还用于转发所述服务端子系统中的应用业务模块的消息给客户端子系统;
所述请求消息处理模块(S05),是包含一个或多个处理线程,每个线程不断地逐个读取所述请求消息缓冲模块(S03)里边的消息并进行响应的处理,每响应一条消息,同时将客户端在服务端对应的响应消息缓冲区中的计数器值减一,如果发现计数器值为零,则将响应消息缓冲区中的所有消息一次性读取,按消息的先后顺序,逐个拷贝到HTTP消息的数据区发送回客户端;
所述应用业务模块 (S06),用于将应用业务需要向客户端主动发送的消息传递到所述响应消息缓冲模块(S04)中存储,等待下一个客户端请求处理完成后一并发送到所述客户端子系统。
4.根据权利要求2 所述基于HTTP协议的数据传输系统,其特征在于,所述客户端子系统和所述服务端子系统可以为功能集成化的服务器,所述服务器之间通过无线或有线网络通讯。
5.根据权利要求1所述系统进行基于HTTP协议的数据传输方法,其特征在于, 包括步骤
a、在客户端子系统设置一个请求消息缓冲模块和一个请求消息发送模块,所有客户端发起的HTTP请求消息先进入所述请求消息缓冲模块, 所述请求消息发送模块则循环地检测请求消息缓冲模块,一旦发现存在HTTP请求消息,则把所述请求消息缓冲模块中的所有HTTP请求消息按先后顺序一次性发送给服务端子系统;
b、所述服务端子系统接收处理所述HTTP请求消息,将响应消息和其它非请求响应消息一次性发送回所述客户端子系统,减小数据包的传送次数。
6.根据权利要求5所述基于HTTP协议的数据传输方法,其特征在于,步骤b具体包括:
通过请求消息接收模块接收来自所述客户端子系统的请求消息,判断是否为登录消息,如果是则将请求消息递给会话管理模块进行处理,否则将请求消息分解为一个个原始的请求消息,然后传递到请求消息缓冲模块进行存储,同时将发送消息的客户端对应的所述服务端子系统中的响应消息缓冲模块中的计数器值设置为原始请求消息的数目;
通过会话管理模块接收来自请求消息接收模块传递的登录消息,并为该客户端生成一个新的会话号,并在请求消息缓冲模块或响应消息缓冲模块中创建一个对应的响应消息缓冲区;
通过所述请求消息处理模块里的每个处理线程不断地逐个读取请求消息缓冲模块里边的消息并进行响应的处理,每响应一条消息,同时将客户端在服务端对应的响应消息缓冲区中的计数器值减一,如果发现计数器值为零,则将响应消息缓冲区中的所有消息一次性读取,按消息的先后顺序,逐个拷贝到HTTP消息的数据区发送回客户端;
通过应用业务模块将应用业务需要向客户端主动发送的消息传递到所述响应消息缓冲模块中存储,等待下一个客户端请求处理完成后一并发送到所述客户端子系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010569013 CN102025730B (zh) | 2010-12-02 | 2010-12-02 | 基于http协议的数据传输装置及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010569013 CN102025730B (zh) | 2010-12-02 | 2010-12-02 | 基于http协议的数据传输装置及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102025730A CN102025730A (zh) | 2011-04-20 |
CN102025730B true CN102025730B (zh) | 2013-09-18 |
Family
ID=43866584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010569013 Expired - Fee Related CN102025730B (zh) | 2010-12-02 | 2010-12-02 | 基于http协议的数据传输装置及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102025730B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623788B (zh) * | 2017-09-22 | 2020-10-27 | 海南飞特同创科技有限公司 | 应用启动速度的提高方法、装置及计算机可读存储介质 |
CN107634964B (zh) * | 2017-10-13 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种针对waf的测试方法及装置 |
CN108536779A (zh) * | 2018-03-29 | 2018-09-14 | 努比亚技术有限公司 | 接口合并方法、服务器、终端、系统以及计算机可读介质 |
CN111770043B (zh) * | 2019-04-01 | 2023-03-10 | 网易(杭州)网络有限公司 | 游戏数据通信方法、装置、存储介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557411A (zh) * | 2008-04-09 | 2009-10-14 | 北京闻言科技有限公司 | 一种在http通信中统一处理请求应答的方法 |
-
2010
- 2010-12-02 CN CN 201010569013 patent/CN102025730B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557411A (zh) * | 2008-04-09 | 2009-10-14 | 北京闻言科技有限公司 | 一种在http通信中统一处理请求应答的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102025730A (zh) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9065788B2 (en) | Method, device and system for voice communication | |
CN115004673B (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN111224792B (zh) | 会议接入方法和装置 | |
CN110445723B (zh) | 一种网络数据调度方法及边缘节点 | |
US20170171585A1 (en) | Method and Electronic Device for Recording Live Streaming Media | |
CN102025730B (zh) | 基于http协议的数据传输装置及其实现方法 | |
CN108228625B (zh) | 一种推送消息处理方法及装置 | |
CN104462033A (zh) | 在设备间实现编辑操作的方法及设备 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
KR20050043772A (ko) | 사용자간 통신을 위한 모듈 및 방법 | |
CN108965359B (zh) | 通信方法、通信装置、可读介质和电子设备 | |
WO2017032152A1 (zh) | 将数据写入存储设备的方法及存储设备 | |
JP2008311947A (ja) | コンテンツ配信システム、コンテンツサーバ、端末、コンテンツ配信方法、プログラムおよび記録媒体 | |
CN107579929B (zh) | 一种可靠连接通信队列对的设置方法、系统及相关装置 | |
CN110837573B (zh) | 分布式音频文件存储与读取方法及系统 | |
CN111866544A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN109766347B (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
CN114153698B (zh) | 显示监控方法、装置、电子设备和可读存储介质 | |
CN116032998A (zh) | 数据传输方法、装置、计算机可读存储介质及电子设备 | |
CN107483424B (zh) | 远程过程调用协议的处理方法和装置 | |
CN111477229A (zh) | 语音识别请求处理方法和装置 | |
CN114338583B (zh) | 远程协同办公模式下的消息处理方法和装置 | |
JP2002318751A (ja) | 通信システム | |
CN113037816B (zh) | 通信方法、存储介质及相关设备 | |
CN116366619A (zh) | 数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130918 Termination date: 20201202 |