CN102801737A - 一种异步网络通信方法及装置 - Google Patents

一种异步网络通信方法及装置 Download PDF

Info

Publication number
CN102801737A
CN102801737A CN2012103115845A CN201210311584A CN102801737A CN 102801737 A CN102801737 A CN 102801737A CN 2012103115845 A CN2012103115845 A CN 2012103115845A CN 201210311584 A CN201210311584 A CN 201210311584A CN 102801737 A CN102801737 A CN 102801737A
Authority
CN
China
Prior art keywords
request
identification number
client
data
window
Prior art date
Application number
CN2012103115845A
Other languages
English (en)
Other versions
CN102801737B (zh
Inventor
刘晓飞
陈春
Original Assignee
北京城市网邻信息技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 北京城市网邻信息技术有限公司 filed Critical 北京城市网邻信息技术有限公司
Priority to CN201210311584.5A priority Critical patent/CN102801737B/zh
Publication of CN102801737A publication Critical patent/CN102801737A/zh
Application granted granted Critical
Publication of CN102801737B publication Critical patent/CN102801737B/zh

Links

Abstract

本发明提供了一种异步网络通信方法,包括以下步骤:针对客户端的每次请求,设置一个唯一的标识号;设置一个等待窗口,将每次请求以相应的标识号为键,注册到等待窗口中,并将每次请求的函数接口以所述标识号为键,放入等待窗口;针对客户端的每次请求,均由服务端返回相应的响应包,并将响应包的数据以所述标识号为键,存入等待窗口;解析所返回的响应包,获取其中的标识号,根据所获取的标识号,将响应包中的数据传到相应的函数接口,由客户端进行相应操作。本发明有效降低了线程上下文切换的频率,提高了系统的性能。

Description

一种异步网络通信方法及装置

技术领域

[0001] 本发明涉及网络通信技术,尤其涉及一种异步网络通信方法及装置。

背景技术

[0002] 操作系统中,执行一个任务所需要使用的处理器或微控·制器的寄存器等资源,称为任务的上下文。执行任务时,系统会根据需要挂起或恢复任务,而在这过程中,寄存器等资源可能发生变化,为了保证一个任务恢复时,其所用的资源与之前该任务处于挂起状态时相同,需要保存该任务在挂起时的上下文,并在任务恢复时恢复其上下文,称为上下文的切换。在现有的网络通信技术中,当前端用户的请求线程越来越多时,通常需要在客户端的后台开启额外的线程来完成异步通信,造成线程上下文频繁的切换,导致系统性能低下。

[0003] 而且,在未建立对服务端的保护机制的情况下,当客户端的线程不断地向服务端发出请求时,容易导致服务端的请求拥塞,从而影响其他线程向服务端发出请求。

发明内容

[0004] 本发明的目的是提供一种异步网络通信方法及装置,可以有效以此降低线程上下文切换的频率,提高系统的性能。

[0005] 根据本发明,所提供的异步网络通信方法,包括以下步骤:

[0006] 针对客户端的每次请求,设置一个唯一的标识号;

[0007] 设置一个等待窗口,将每次请求以相应的标识号为键,注册到等待窗口中,并将每次请求的函数接口以所述标识号为键,放入等待窗口 ;

[0008] 针对客户端的每次请求,均由服务端返回相应的响应包,并将响应包的数据以所述标识号为键,存入等待窗口 ;

[0009] 解析所返回的响应包,获取其中的标识号,根据所获取的标识号,将响应包中的数据传到相应的函数接口,由客户端进行相应操作。

[0010] 根据本发明的另一个方面,还提供了一种异步网络通信装置,包括以下模块:

[0011] 标识设置模块,用于针对客户端的每次请求,设置一个唯一的标识号;

[0012] 等待窗口模块,用于注册以相应的标识号为键的每次请求和存储以相应的标识号为键的每次请求的函数接口 ;

[0013] 接收响应模块,针对客户端的每次请求而由服务端返回的相应响应包,将其响应包的数据以所述标识号为键,存入等待窗口 ;

[0014] 解析响应模块,用于解析所返回的响应包,获取其中的标识号,根据所获取的标识号,将响应包中的数据传到相应的函数接口,由客户端进行相应操作。

[0015] 与现有技术相比,本发明具有以下优点:

[0016] I)可以有效降低线程上下文切换的频率,提高系统的性能;

[0017] 2)可以显著提高服务端的并发响应能力,降低响应时间;

[0018] 3)可以有效的进行负载控制提高系统可用性。附图说明

[0019] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

[0020] 图I为根据本发明一个优选实施例的异步网络通信方法流程图;以及

[0021] 图2为根据本发明的一个优选实施例的以回调函数和接收(receive)函数为例的异步网络通信方法流程图。

具体实施方式

[0022] 下面结合附图对本发明作进一步详细描述。

[0023] 根据本发明的一个方面,提供了一种异步网络通信方法。需要说明的是,本实施例中,可视客户端的每次请求为一次线程的处理,下文将进行详细说明。

[0024] 请参考图1,图I为根据本发明一个优选实施例的异步网络通信方法流程图。

[0025] 如图I所示,本发明所提供的异步网络通信方法包括以下步骤:

[0026] 步骤S101,针对客户端的每次请求,设置一个唯一的标识号(SessionID),也称为会话标识。Session (会话)机制是一种标识请求上下文的机制,客户端使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

[0027] 客户端每次发起一个新的请求时,都会创建一个唯一标识号(SessionID),主要用来匹配客户端请求和服务器端的响应,SessionID存储在等待窗口中。

[0028] 具体地,客户端的请求包括各种类型,有的请求发送到服务端后,无需服务端返回数据,如请求将数据添加到数据库,对于这种请求,不需要在客户端的等待窗口中做相关的注册,客户端封装相应的请求包发往服务端,服务端在接收到这种类型的请求后直接进行相关的处理,结果无需返回.有的请求发送到服务端后,需要服务端返回数据,如请求服务端统计当日发布数据的用户ID和所发布的数据内容,并将统计的数据和发布的内容反馈给客户端,对于这种请求,对其定义一个回调函数(callback函数),其中,callback函数包含本领域技术人员通常所使用的含义,可以指通过函数指针调用的函数,例如把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,称为回调函数。再例如,给统计数据的请求定义一个callback函数,则从服务端返回统计数据的结果时,将这个结果传送到callback函数执行,以进行本请求需要处理的操作,如将统计的结果以图表的方式进行展示。

[0029] 综上,回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用,用于对该事件或条件进行响应。

[0030] 对于客户端的每次请求,都对其设定一个唯一的标识号,该标识号优选全局的、整数类型的变量。如上文所述,可将每次请求视为一次线程的处理,而每个线程都有一个上下文,保存在线程的内核对象中,这个上下文反映了请求执行的状态,当一个线程从挂起到恢复时,需要恢复其上下文。由此,上文设定的标识号可以对每次请求的上下文进行标识。

[0031] 步骤S102,设置一个等待窗口(WaitWindow),将每次请求以相应的标识号为键,并将需要处理请求所返回的数据的callback方法,注册到等待窗口中。

[0032] 具体地,等待窗口为一个窗口变量,其中,存储了客户端的一些函数接口和服务端返回的数据。将每次请求以相应的标识号为键,注册到等待窗口后,就可以根据标识号从等待窗口中获取相应的数据。例如以时间为序,分别设置标识号1、2、3,以标识三个不同请求的上下文,并将这三个请求注册到等待窗口后,就可以根据标识号从等待窗口中获取相应的数据。

[0033] 将每次请求注册到等待窗口的同时,将每次请求的函数接口也以所述标识号为键,放入等待窗口。如上文所述,不同请求中所定义的函数不同,如请求中定义的是callback函数,则将该请求注册到等待窗口的同时,将该请求的callback函数接口放入等待窗口中,以等待服务端返回该接口所需的数据。

[0034] 步骤S103,针对客户端的每次请求,均由服务端返回相应的响应包,并将响应包的数据以所述标识号为键,存入等待窗口。

[0035] 具体地,客户端的请求正常到达服务端以后,由服务端进行相应地处理,并将处理的结果返回给客户端,例如,请求服务端统计当日的发帖量,则服务端统计完当日的发帖量 后,将统计的结果返回给客户端,当然,返回的内容中,除了统计结果,还有一些其他内容,如网络通信协议版本号、请求的标识号(也就是SessionID)、返回消息的长度、返回的数据类型、返回的数据内容等等。为了简明起见,将所返回的内容定义为响应包,通常,响应包以协议的字节流形式返回。

[0036] 服务端返回响应包后,如果响应包正常到达,客户端从返回的响应包中提取出SessionID和相关的数据,根据SessionID在等待窗口中查找以SessionID为键的项,如果找到则调用该项的键值中相关的Callback接口交接数据处理权。如果没有找到则丢弃数据。如果响应包超时到达,则将所对应的窗口数据移除,并抛出超时异常,进行异常处理。其中,将等待窗口中每一份与请求对应的数据称为窗口数据。

[0037] 针对服务端返回响应包的状态信息,callback中定义了系列的事件(event),事件的内容为:当服务端正常返回响应包时,根据相应参数,通知客户端的相应线程进行操作,即该事件定义的是一个等待服务端返回响应包和唤醒请求线程的过程。其中,event对象代表事件的状态,比如服务端是否正常返回响应包。如上文所述,等待窗口中存入了客户端所发送请求的标识号、函数接口,还有服务端返回的响应包的数据。

[0038] 步骤S104,解析所返回的响应包,获取其中的标识号,根据所获取的标识号,将响应包中的数据传到相应的函数接口,由客户端进行相应操作。

[0039] 具体地,服务端返回响应包后,客户端对该响应包进行解析,将相应的数据传到相应的请求线程。如上文所述,响应包中存在请求的标识号。解析响应包时,获取其中的标识号,并找到与该标识号相同的请求,将响应包中的数据从等待窗口中,以参数的形式传送到请求线程中的函数接口,由函数执行相应地功能。即根据标识号,将窗口数据传送到请求的线程,用于后续操作。

[0040] 通常,将客户端和服务端的一次通信称为一次会话,如此,客户端发送一个请求时,设置一个会话标识号,即上文提到的SessionID,而服务端返回响应的数据时,同样,会带回一个会话标识号,通过带回来的标识号,找到客户端中与该标识号相同的标识号,并将窗口数据传送到该标识号的请求线程的函数接口,以进行后续操作。例如,客户端发送一个统计当日发帖量的请求,设置本次会话的标识号为1,如果服务端返回响应的数据中,其中的一个标识号为1,则将与标识号I对应的窗口数据传送到标识号为I的线程的函数接口,以进行后续操作。

[0041] 需要说明的是,本实施例中,标识号与窗口数据是一一对应的,即一个标识号对应一份窗口数据。

[0042] 优选地,本实施例提供的 异步网络通信方法还包括,对网络通信的过程进行拥塞控制,具体包括以下步骤:

[0043] a)将客户端所有请求的数据结构设置成队列机制。

[0044] 具体地,在本技术领域,队列是一种特殊的线性表,只允许在表的前端进行删除操作,在表的后端进行插入操作。将客户端所有请求的数据结构设置成队列机制,即发送时间较早的请求,排在队列的较前端,通常越早由客户端进行处理。

[0045] b)对所述队列的长度设置一个阈值,并在客户端设置滑动窗口,判断一定时间内队列的长度是否超过所述阈值,如果超过,则将先加入的请求放入滑动窗口 ;如果在所述阈值内,则将先加入的请求发送到服务端。

[0046] 具体地,本实施例基于异步机制进行通信,换言之,客户端将请求发送到服务端后,在未收到服务端返回的数据时,即将处理本请求的线程进行其他的操作。由此,客户端可不断地向服务端发送请求,一旦请求超过服务端的承受能力,就会造成服务端的数据拥塞。

[0047] 为了解决数据拥塞问题,本发明在客户端设置滑动窗口,以控制请求发送的时延。当然,滑动窗口所采用的拥塞控制算法可以为本技术领域通用的算法。从客户端发送请求时,可通过滑动窗口,容许客户端在接收任何响应之前传送附加的请求,滑动窗口的大小意味着服务端还有多大的缓冲区可以用于接收请求,客户端也可以通过滑动窗口的大小确定应该发送多少字节的请求数据。

[0048] 为了使本实施例提供的异步网络通信方法更加明确,下文以回调函数为例子进行具体说明,其中,还添加了拥塞控制机制。参照图2,图2为根据本发明的一个优选实施例的以回调函数为例的异步网络通信方法流程图。

[0049] 根据图2,异步网络通信方法包括以下步骤:

[0050] 步骤S201,客户端发起请求。

[0051] 步骤S202,针对每次请求,设置一个唯一的标识号。

[0052] 步骤S203,以标识号为键,将每次请求注册到等待窗口中。

[0053] 步骤S204,将请求发往服务端之前,判断请求队列的长度是否超过阈值,如果是,则进入步骤S205 ;如果不是,则进入步骤S206。

[0054] 步骤S205,将请求放入滑动窗口中,通过拥塞控制算法控制发送的时延。

[0055] 步骤S206,将请求发往服务端。

[0056] 步骤S207,服务端收到请求后,判断是否callback函数调用,如果不是,则直接处理还返回数据,进入步骤S208 ;如果是,则将业务逻辑处理结果和所述的标识号等相关信息封装后返回给客户端,进入步骤S209。

[0057] 步骤S208,处理具体的业务逻辑。

[0058] 步骤S209,由客户端接收服务端发回的响应。

[0059] 步骤S210,判断所接收的响应是否超时,如果是,进入步骤S211,抛出异常,进行异常处理,结束该线程;如果不是,进入步骤S212,进一步判断是否callback函数调用,如果是,进入步骤S213,调用callback函数,进行相应处理,结束该线程。其中,callback函数可将正常接收的数据返回给请求线程,也可以唤醒请求线程进行超时数据的异常处理。

[0060] 与现有技术相比,本发明所提供的异步网络通信方法具有以下优点:

[0061] I)通过设置等待窗口和对每次请求设置标识号,使得异步通信中,无需开启额外的线程进行异步处理,这大大降低了线程的上下文切换频率,提高了系统响应的速度;

[0062] 2)通过设置滑动窗口,可以对较好地解决服务端的数据拥塞问题。 [0063] 根据本发明的另一个方面,还提供了一种异步网络通信装置,包括以下模块:

[0064] 标识设置模块,用于针对客户端的每次请求,设置一个唯一的标识号。

[0065] 具体地,客户端的请求包括各种类型,有的请求发送到服务端后,无需服务端返回数据,如请求将数据添加到数据库,对于这种请求,不需要在客户端的等待窗口中做相关的注册,客户端封装相应的请求包发往服务端,服务端在接收到这种类型的请求后直接进行相关的处理,结果无需返回。有的请求发送到服务端后,需要服务端返回数据,如请求服务端统计当日发布数据的用户ID和所发布的数据内容,并将统计的数据和发布的内容反馈给客户端,对于这种请求,也对其定义一个回调函数(callback函数),其中,callback函数包含本领域技术人员通常所使用的含义,可以指通过函数指针调用的函数,例如把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,称为回调函数。再例如,给统计数据的请求定义一个callback函数,则从服务端返回统计数据的结果时,将这个结果传送到callback函数执行,以进行本请求需要处理的操作,如将统计的结果以图表的方式进行展示。

[0066] 综上,回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用,用于对该事件或条件进行响应。

[0067] 对于客户端的每次请求,都由标识设置模块对其设定一个唯一的标识号,该标识号优选全局的、整数类型的变量。如上文所述,可将每次请求视为一次线程的处理,而每个线程都有一个上下文,保存在线程的内核对象中,这个上下文反映了线程上一次执行时CPU的状态,当一个线程从挂起到恢复时,需要恢复其上下文。由此,上文设定的标识号可以对每次请求的上下文进行标识。

[0068] 等待窗口模块,用于注册以相应的标识号为键的每次请求和存储以相应的标识号为键的每次请求的函数接口。

[0069] 具体地,等待窗口模块设置了等待窗口,等待窗口为一个窗口变量,其中,存储了客户端的一些函数接口和服务端返回的数据。将每次请求以相应的标识号为键,注册到等待窗口后,就可以根据标识号从等待窗口中获取相应的数据。例如以时间为序,分别设置标识号1、2、3,以标识三个不同请求的上下文,并将这三个请求注册到等待窗口后,就可以根据标识号从等待窗口中获取相应的数据。

[0070] 标识设置模块将每次请求注册到等待窗口的同时,由等待窗口模块将每次请求的函数接口以所述标识号为键,放入等待窗口。如上文所述,不同请求中所定义的函数不同,如请求中定义的是callback函数,则将该请求注册到等待窗口的同时,将该请求的callback函数接口放入等待窗口中,以等待服务端返回该接口所需的数据。

[0071] 接收响应模块,针对客户端的每次请求而由服务端返回的相应响应包,将其响应包的数据以所述标识号为键,存入等待窗口。[0072] 具体地,客户端的请求正常到达服务端以后,由服务端进行相应地处理,并将处理的结果返回给客户端,例如,请求服务端统计当日的发帖量,则服务端统计完当日的发帖量后,将统计的结果返回给客户端,当然,返回的内容中,除了统计结果,还有一些其他内容,如网络通信协议版本号、请求的标识号、返回消息的长度、返回的数据类型、返回的数据内容、方法执行结果状态等等。为了简明起见,将所返回的内容定义为响应包,通常,响应包以协议的字节流形式返回。服务端返回响应包后,如果响应包正常到达,服务器返回数据后客户端接收并从数据中提取SessionId,根据SessionId在等待窗口中查找以SessionId为键的项,如果找到则调用该项Value中相关的Callback接口交接数据处理权。如果没有找到则丢弃数据。如果响应包超时到达,则抛出异常,进行异常处理。其中,将等待窗口中每一份与请求对应的数据称为窗口数据。

[0073] 针对服务端返回响应包的状态信息,callback中定义了系列的事件(event),事件的内容为:当服务端正常返回响应包时,根据相应参数,通知客户端的相应线程进行操作,即该事件定义的是一个等待服务端返回响应包和唤醒请求线程的过程。其中,event对 象代表事件的状态,比如服务端是否正常返回响应包。如上文所述,等待窗口中存入了客户端所发送请求的标识号、函数接口,还有服务端返回的响应包的数据。

[0074] 解析响应模块,用于解析所返回的响应包,获取其中的标识号,根据所获取的标识号,将响应包中的数据传到相应的函数接口,由客户端进行相应操作。

[0075] 具体地,服务端返回响应包后,客户端对该响应包进行解析,将相应的数据传到相应的请求线程。如上文所述,响应包中存在请求的标识号。解析响应包时,获取其中的标识号,并找到与该标识号相同的请求,将响应包中的数据从等待窗口中,以参数的形式传送到请求线程中的函数接口,由函数执行相应地功能。即根据标识号,将窗口数据传送到请求的线程,用于后续操作。

[0076] 通常,将客户端和服务端的一次通信称为一次会话,如此,客户端发送一个请求时,设置一个会话标识号,即上文提到的SessionID,而服务端返回响应的数据时,同样,会带回一个会话标识号,通过带回来的标识号,找到客户端中与该标识号相同的标识号,并将窗口数据传送到该标识号的请求线程的函数接口,以进行后续操作。例如,客户端发送一个统计当日发帖量的请求,设置本次会话的标识号为1,如果服务端返回响应的数据中,其中的一个标识号为1,则将与标识号I对应的窗口数据传送到标识号为I的线程的函数接口,以进行后续操作。

[0077] 需要说明的是,本实施例中,标识号与窗口数据是一一对应的,即一个标识号对应一份窗口数据。

[0078] 优选地,本实施例提供的异步网络通信装置还包括拥塞控制模块,用于对网络通信的过程进行拥塞控制。拥塞控制模块具体还包括:

[0079] 队列设置模块,用于将客户端所有请求的数据结构设置成队列机制。

[0080] 具体地,在本技术领域,队列是一种特殊的线性表,只允许在表的前端进行删除操作,在表的后端进行插入操作。将客户端所有请求的数据结构设置成队列机制,即发送时间较早的请求,排在队列的较前端,通常越早由客户端进行处理。

[0081] 滑动窗口和阈值设置模块,用于对所述队列的长度设置阈值,并在客户端设置滑动窗口,判断一定时间内队列的长度是否超过所述阈值,如果超过,则将先加入的请求放入滑动窗口 ;如果在所述阈值内,则将先加入的请求发送到服务端。

[0082] 具体地,本实施例基于异步机制进行通信,换言之,客户端将请求发送到服务端后,在未收到服务端返回的数据时,即将处理本请求的线程进行其他的操作。由此,客户端可不断地向服务端发送请求,一旦请求超过服务端的承受能力,就会造成服务端的数据拥塞。

[0083] 为了解决数据拥塞问题,在客户端设置滑动窗口,以控制请求发送的时延。当然,滑动窗口所采用的拥塞控制算法可以为本技术领域通用的算法。从客户端发送请求时,可通过滑动窗口,容许客户端在接收任何响应之前传送附加的请求,滑动窗口的大小意味着服务端还有多大的缓冲区可以用于接收请求,客户端也可以通过滑动窗口的大小确定应该发送多少字节的请求数据。

[0084] 本发明所提供的异步网络通信装置具有以下优点: [0085] I)通过设置等待窗口和对每次请求设置标识号,使得异步通信中,无需开启额外的线程进行异步处理,这大大降低了线程的上下文切换频率,提高了系统响应的速度;

[0086] 2)通过设置滑动窗口,可以对较好地解决服务端的数据拥塞问题。

[0087] 3)本发明较好地解决了线程的上下文切换和数据拥塞的问题,提高了系统的性倉泛。

[0088] 以上所揭露的仅为本发明的几种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (10)

1. 一种异步网络通信方法,包括以下步骤: 针对客户端的每次请求,设置一个唯一的标识号; 设置一个等待窗口,将每次请求以相应的标识号为键,注册到等待窗口中,并将需要处理请求所返回的数据的回调方法注册到等待窗口中; 针对客户端的每次请求,均由服务端返回相应的响应包,并将响应包的数据以所述标识号为键,存入等待窗口 ; 解析所返回的响应包,获取其中的标识号,根据所获取的标识号,将响应包中的数据传到相应的函数接口,由客户端进行相应操作。
2.根据权利要求I所述的方法,其中,所述标识号为全局变量;所述等待窗口存放客户端所发送请求的标识号、函数接口以及服务端返回的响应包的数据。
3.根据权利要求I所述的方法,其中,所述的响应包以协议的字节流形式返回,其中包括网络通信协议版本号、请求的标识号、返回消息的长度、返回的数据类型和返回的数据内容。
4.根据权利要求1-3任一项所述的方法,还包括以下步骤: 将客户端所有请求的数据结构设置成队列机制; 对所述队列的长度设置一个阈值,并在客户端设置滑动窗口,判断一定时间内队列的长度是否超过所述阈值,如果超过,则将先加入的请求放入滑动窗口 ;如果在所述阈值内,则将先加入的请求发送到服务端。
5.根据权利要求4所述的方法,其中还包括以下步骤: 服务端收到请求后,判断是否回调函数调用; 如果是回调函数调用,则将业务逻辑处理结果和所述的标识号以及相关信息返回给客户端,否则直接处理还返回数据。
6. 一种异步网络通信装置,包括以下模块: 标识设置模块,用于针对客户端的每次请求,设置一个唯一的标识号; 等待窗口模块,用于注册以相应的标识号为键的每次请求和注册需要处理请求所返回的数据的回调方法; 接收响应模块,针对客户端的每次请求而由服务端返回的相应响应包,将其响应包的数据以所述标识号为键,存入等待窗口 ; 解析响应模块,用于解析所返回的响应包,获取其中的标识号,根据所获取的标识号,将响应包中的数据传到相应的函数接口,由客户端进行相应操作。
7.根据权利要求6所述的装置,其中,所述标识号为全局的、整数类型的变量。
8.根据权利要求6或7所述的装置,其中,所述等待窗口存放客户端所发送请求的标识号、函数接口以及服务端返回的响应包的数据。
9.根据权利要求6或7所述的装置,其中,所述的响应包以协议的字节流形式返回,包括网络通信协议版本号、请求的标识号、返回消息的长度、返回的数据类型和返回的数据内容。
10.根据权利要求6-9任一项所述的装置,还包括拥塞控制模块,具体还包括: 队列设置模块,用于将客户端所有请求的数据结构设置成队列机制; 滑动窗口和阈值设置模块,用于对所述队列的长度设置阈值,并在客户端设置滑动窗口,判断一定时间内队列的长度是否超过所述阈值,如果超过,则将先加入的请求放入滑动 窗口 ;如果在所述阈值内,则将先加入的请求发送到服务端。
CN201210311584.5A 2012-08-28 2012-08-28 一种异步网络通信方法及装置 CN102801737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210311584.5A CN102801737B (zh) 2012-08-28 2012-08-28 一种异步网络通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210311584.5A CN102801737B (zh) 2012-08-28 2012-08-28 一种异步网络通信方法及装置

Publications (2)

Publication Number Publication Date
CN102801737A true CN102801737A (zh) 2012-11-28
CN102801737B CN102801737B (zh) 2016-04-27

Family

ID=47200699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210311584.5A CN102801737B (zh) 2012-08-28 2012-08-28 一种异步网络通信方法及装置

Country Status (1)

Country Link
CN (1) CN102801737B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685083A (zh) * 2013-12-31 2014-03-26 曙光云计算技术有限公司 异步管理网络中的通信方法
CN105516086A (zh) * 2015-11-25 2016-04-20 广州华多网络科技有限公司 业务处理方法及装置
CN105592097A (zh) * 2016-01-06 2016-05-18 北京神舟航天软件技术有限公司 一种基于客户端的异步交互信息方法
WO2017097262A1 (zh) * 2015-12-11 2017-06-15 北京奇虎科技有限公司 数据交互方法和装置及计算机程序和计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119166A (en) * 1997-03-28 2000-09-12 International Business Machines Corporation Controlling communications with local applications using a browser application
CN1435764A (zh) * 2002-02-01 2003-08-13 上海贝尔阿尔卡特移动通信系统有限公司 并发事件处理方法及使用该方法的基于万维网的应用系统
CN102638582A (zh) * 2012-04-12 2012-08-15 华为技术有限公司 数据通信方法及通信端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119166A (en) * 1997-03-28 2000-09-12 International Business Machines Corporation Controlling communications with local applications using a browser application
CN1435764A (zh) * 2002-02-01 2003-08-13 上海贝尔阿尔卡特移动通信系统有限公司 并发事件处理方法及使用该方法的基于万维网的应用系统
CN102638582A (zh) * 2012-04-12 2012-08-15 华为技术有限公司 数据通信方法及通信端

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685083A (zh) * 2013-12-31 2014-03-26 曙光云计算技术有限公司 异步管理网络中的通信方法
CN105516086A (zh) * 2015-11-25 2016-04-20 广州华多网络科技有限公司 业务处理方法及装置
CN105516086B (zh) * 2015-11-25 2019-06-07 广州华多网络科技有限公司 业务处理方法及装置
WO2017097262A1 (zh) * 2015-12-11 2017-06-15 北京奇虎科技有限公司 数据交互方法和装置及计算机程序和计算机可读介质
CN105592097A (zh) * 2016-01-06 2016-05-18 北京神舟航天软件技术有限公司 一种基于客户端的异步交互信息方法
CN105592097B (zh) * 2016-01-06 2019-05-07 北京神舟航天软件技术有限公司 一种基于客户端的异步交互信息方法

Also Published As

Publication number Publication date
CN102801737B (zh) 2016-04-27

Similar Documents

Publication Publication Date Title
US20180262620A1 (en) System and method for a work distribution service
JP6559670B2 (ja) ネットワーク機能仮想化情報コンセントレータのための方法、システム、およびコンピュータ読取可能媒体
US10067789B2 (en) Method and apparatus for scheduling concurrent task among service servers by using processing thread
CN105940377B (zh) 用于基于云的虚拟化编排器的方法、系统和计算机可读介质
EP2701074B1 (en) Method, device, and system for performing scheduling in multi-processor core system
US9742667B2 (en) Packet processing method, device and system
CN105721535A (zh) 对服务功能链中的服务功能的并行处理
CN102255934B (zh) 云服务发布方法及云服务中介
CA2557461C (en) Dual use counters for routing loops and spam detection
US8763018B2 (en) Modifying application behaviour
US20140244721A1 (en) Real-time communications using a restlike api
EP2038746B1 (en) Methods, apparatus and computer programs for managing persistence
CN101366238B (zh) 用于改进的基于网络的内容检查的系统和方法
US9277012B2 (en) Apparatus and method for tracking transaction related data
US9299111B2 (en) Efficient presence distribution mechanism for a large enterprise
KR20150127095A (ko) 못 본 메시지 카운트를 장치들에 걸쳐 제공하는 기법
US9430259B2 (en) Virtualization congestion control framework for modifying execution of applications on virtual machine based on mass congestion indicator in host computing system
US10169060B1 (en) Optimization of packet processing by delaying a processor from entering an idle state
US8584136B2 (en) Context-aware request dispatching in clustered environments
JP2011258098A (ja) 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
US8832304B2 (en) Protocol agnostic notification system
CN101409685B (zh) 基于虚拟局域网映射的转发方法及接入设备
US9588733B2 (en) System and method for supporting a lazy sorting priority queue in a computing environment
KR20110076954A (ko) 저자원 장치에서의 최적화 폴링
CN102469033B (zh) 一种消息订阅系统以及消息发送方法

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
C14 Grant of patent or utility model