与客户端进行通信的装置和方法与流程

文档序号:12495042阅读:201来源:国知局
与客户端进行通信的装置和方法与流程

本发明涉及通信技术领域,尤其涉及一种与客户端进行通信的装置和方法。



背景技术:

随着互联网的发展,用户越来越多地产生彼此之间的互动,而且用户对网络的同步性要求越来越高,特别是在一些实时对战的游戏中。在快节奏的动作游戏中,延迟严重影响用户体验,而多人联网过程中的延迟,甚至可能导致游戏判定出现错误。

多人联网通常使用“客户端——服务器”的网络架构,通常一个服务器为一个专门的主机或主机群,用来实现指令接收、规则判断、输入处理等功能。而不同用户则使用不同客户端,客户端主要用于接收用户指令和解析并展示服务器的处理结果。

客户端和服务器之间按高频率(通常是20到30包/每秒)传输小数据包来互相通信。客户端接收来自服务器的更新包,并根据这些更新包生成本客户端的视频和音频等输出;客户端还从输入设备(键盘、鼠标、麦克风等)中抽取输入数据,并将这些输入数据送回服务器进行进一步处理。

而多人联网情况下则需要进一步处理基于分组通信的各种问题。网络带宽是有限的,因此服务器不能根据每一个客户端的输入数据生成一个新的更新包发送给所有的客户端;通常服务器以恒定的速率获取当前状态的快照并生成更新包,向客户端广播这些更新包。更新包需要一定的时间在客户端和服务器之间传输,这意味着客户端时间总是在服务器时间存在延迟。此外,客户端的输入数据返回服务器时也存在延迟情况,所以服务器延迟处理用户命令。

每个客户端的网络时延情况不同,这些客户端与服务器之间的时间差异导致逻辑问题。多人联网过程中存在的异步延迟,导致服务器处理来自客户端的指令时出现先后逻辑错误的问题,从而服务器无法对多人联网活动进行正确判断和及时响应。



技术实现要素:

本发明的主要目的在于提出一种与客户端进行通信的装置和方法,旨在对参与联网行为的多个客户端的行为。

为实现上述目的,本发明提供的一种与客户端进行通信的装置,包括:延迟检测模块,检测同一联网行为对应的多个客户端之间的延迟时间;时间计算模块,根据所述多个客户端对应的延迟时间,计算所述多个客户端的上传数据对应的上传时间;数据生成模块,根据所述上传数据对应的上传时间,生成下发数据;数据下发模块,将所述下发数据发送给所述多个客户端。

可选地,前述的装置,还包括:比较模块,计算所述多个客户端对应的延迟时间中的最大值与最小值的差值,将所述差值与预设阈值进行比较;在所述差值超过所述预设阈值时,执行根据所述多个客户端对应的延迟时间,计算所述多个客户端的上传数据对应的上传时间。

可选地,前述的装置,还包括:阈值设置模块,根据所述联网行为的类型,设置所述预设阈值的大小。

可选地,前述的装置,还包括:带宽分配模块,根据所述多个客户端对应的延迟时间,为所述多个客户端分别分配网络带宽,以用于向所述多个客户端发送所述下发数据。

可选地,前述的装置,所述下发数据包括必要数据和非必要数据;所述带宽分配模块根据所述多个客户端对应的延迟时间,针对所述多个客户端分别判断是否仅发送所述必要数据,根据判断结果为所述多个客户端分配带宽。

可选地,前述的装置,所述带宽分配模块从预设的总网络带宽中为所述多个客户端均分配与所述下发数据的大小匹配的带宽,如果所述网络带宽中仍存在未分配带宽,则根据所述多个客户端对应的延迟时间,将所述未分配带宽分配给所述多个客户端。

为实现上述目的,本发明还提供一种与客户端进行通信的方法,包括:检测同一联网行为对应的多个客户端之间的延迟时间;根据所述多个客户端对应的延迟时间,计算所述多个客户端的上传数据对应的上传时间;根据所述上传数据对应的上传时间,生成下发数据;将所述下发数据发送给所述多个客户端。

可选地,前述的方法,在根据所述多个客户端对应的延迟时间,计算所述多个客户端的上传数据对应的上传时间之前,还包括:计算所述多个客户端对应的延迟时间中的最大值与最小值的差值,将所述差值与预设阈值进行比较;在所述差值超过所述预设阈值时,执行根据所述多个客户端对应的延迟时间,计算所述多个客户端的上传数据对应的上传时间。

可选地,前述的方法,在将所述差值与预设阈值进行比较之前,还包括:根据所述联网行为的类型,设置所述预设阈值的大小。

可选地,前述的方法,在将所述下发数据发送给所述多个客户端之前,还包括:根据所述多个客户端对应的延迟时间,为所述多个客户端分别分配网络带宽,以用于向所述多个客户端发送所述下发数据。

可选地,前述的方法,所述下发数据包括必要数据和非必要数据;根据所述多个客户端对应的延迟时间,为所述多个客户端分别分配网络带宽,具体包括:根据所述多个客户端对应的延迟时间,针对所述多个客户端分别判断是否仅发送所述必要数据,根据判断结果为所述多个客户端分配带宽。

可选地,前述的方法,根据所述多个客户端对应的延迟时间,为所述多个客户端分别分配网络带宽,具体包括:从预设的总网络带宽中为所述多个客户端均分配与所述下发数据的大小匹配的带宽,如果所述网络带宽中仍存在未分配带宽,则根据所述多个客户端对应的延迟时间,将所述未分配带宽分配给所述多个客户端。

根据以上技术方案,本发明提出的与客户端进行通信的装置和方法至少具有以下优点:

根据本发明的技术方案,在接收到参与同一联网的多个客户端上传的数据后,根据多个客户端的延迟情况对客户端上传数据的时间进行修正,从而能够按照正确的时间前后顺序进行处理,从而得到争取的结果数据并下发给多个客户端,可见本发明的技术方案适于应用到服务器上,有利于服务器对多个客户端参与的联网活动进行正确、及时的反应。

附图说明

图1为根据本发明的一个实施例的与客户端进行通信的装置的框图;

图2为根据本发明的一个实施例的与客户端进行通信的装置的框图;

图3为根据本发明的一个实施例的与客户端进行通信的方法的流程图;

图4为根据本发明的一个实施例的与客户端进行通信的方法的流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明的一个实施例提供了一种与客户端进行通信的装置,本实施例的装置位于服务器端,用于与参与联网活动的多个客户端进行交互。本实施例的装置包括:

延迟检测模块110,检测同一联网行为对应的多个客户端之间的延迟时间。

在本实施例中,对联网活动的类型不进行限制,例如可以是多人联网的实时对战游戏,或多人联网参与的通信会议等;在本实施例中,对客户端的类型不进行限制,其具体可以是手机、平板电脑等。

时间计算模块120,根据多个客户端对应的延迟时间,计算多个客户端的上传数据对应的上传时间。

在本实施例中,每个客户端所在的环境不同,其通信时的延迟情况不相同;不同客户端将数据上传到服务器时,由于各自网络状态不一致从而导致延迟时间不同步,容易造成服务器处理数据的先后顺序错乱,从而产生错误的结果;在本实施例中,计算客户端上传数据的时间,即动态对齐上传的数据,具体地,在本实施例中以服务器的时间为基础,对每个客户端减去上监测延迟时间pk,作为该客户端信息的时间点。

数据生成模块130,根据上传数据对应的上传时间,生成下发数据。

在本实施例中,对于多个游戏等联网行为,服务器需要产生同一结果下发到多个客户端,以多个客户端的游戏内容进行更新。

数据下发模块140,将下发数据发送给多个客户端。

根据本实施例的技术方案,在接收到参与同一联网的多个客户端上传的数据后,根据多个客户端的延迟情况对客户端上传数据的时间进行修正,从而能够按照正确的时间前后顺序进行处理,从而得到争取的结果数据并下发给多个客户端,可见本发明的技术方案适于应用到服务器上,有利于服务器对多个客户端参与的联网活动进行正确、及时的反应。

如图2所示,本发明的一个实施例提供了一种与客户端进行通信的装置,本实施例的装置位于服务器端,用于与参与联网活动的多个客户端进行交互。本实施例的装置包括:

延迟检测模块210,检测同一联网行为对应的多个客户端之间的延迟时间。

阈值设置模块220,根据联网行为的类型,设置预设阈值的大小。

在本实施例中,预设阈值M的具体大小与不同场景的联网状态有关,例如实时对战游戏的M基本要求小于100ms(毫秒);而多人联网聊天/视频的M则可能只要求小于1s(秒)。

比较模块230,计算多个客户端对应的延迟时间中的最大值与最小值的差值,将差值与预设阈值进行比较。

在本实施例中,判断客户端延迟时间差异超过阈值:将监测到所有客户端与服务器之间的延迟时间记为数组P={p1,p2,……pn};客户端延迟时间差异delta P=Max(P)-Min(P)。判断delta P是否超过预设阈值M。

时间计算模块240,在差值超过预设阈值时,执行根据多个客户端对应的延迟时间,计算多个客户端的上传数据对应的上传时间。

数据生成模块250,根据上传数据对应的上传时间,生成下发数据。

数据下发模块260,将下发数据发送给多个客户端。

带宽分配模块270,根据多个客户端对应的延迟时间,为多个客户端分别分配网络带宽,以用于向多个客户端发送下发数据。

在本实施例中,为保证下发数据可以同时或接近同时发送给多个客户端,以避免多个客户端收到下发数据的时间相差较大,影响多个客户端下次发送数据的时间,采用将有限的带宽按客户端的延迟情况进行分配,使得多个客户端接收到下发数据的时间一致,以多人联网游戏为例,多个客户端的游戏环境可以同时更新,使得多个客户端的用户在同一时间面对同样的游戏环境做出反应,有利于多个客户端的用户正常进行游戏。

在本实施例中,进一步提出两种分配带宽的方式:

(1)下发数据包括必要数据和非必要数据;根据多个客户端对应的延迟时间,针对多个客户端分别判断是否仅发送必要数据,根据判断结果为多个客户端分配带宽。

在本实施例中,在服务器生成下发的数据包时,数据包中可以包括提供给客户端的多个指令,服务器会赋予数据包中的每个指令一个必要性标识符表示该指令的必要程度;最简单的表示方式是采用0/1二分法(还可以进行多级划分):对必要指令(如,规则判定结果、本客户端的指令)标记为1;对非必要指令(如,其他客户端的指令)标记为0。根据每个服务器网络状况选择下发数据包是否需要精简,然后根据判断结果进行带宽分配;本实施例中,保证各客户端能够传输最简更新包。

(2)从预设的总网络带宽中为多个客户端均分配与下发数据的大小匹配的带宽,如果网络带宽中仍存在未分配带宽,则根据多个客户端对应的延迟时间,将未分配带宽分配给多个客户端。

在本实施例中,缩减客户端传输完整数据包之外的带宽,对于富裕的带宽按照延迟时间大小逆序分配。

如图3所示,本发明的一个实施例提供了一种与客户端进行通信的方法,本实施例的方法在服务器端实现,用于与参与联网活动的多个客户端进行交互。本实施例的方法包括:

步骤S310,检测同一联网行为对应的多个客户端之间的延迟时间。

在本实施例中,对联网活动的类型不进行限制,例如可以是多人联网的实时对战游戏,或多人联网参与的通信会议等;在本实施例中,对客户端的类型不进行限制,其具体可以是手机、平板电脑等。

步骤S320,根据多个客户端对应的延迟时间,计算多个客户端的上传数据对应的上传时间。

在本实施例中,每个客户端所在的环境不同,其通信时的延迟情况不相同;不同客户端将数据上传到服务器时,由于各自网络状态不一致从而导致延迟时间不同步,容易造成服务器处理数据的先后顺序错乱,从而产生错误的结果;在本实施例中,计算客户端上传数据的时间,即动态对齐上传的数据,具体地,在本实施例中以服务器的时间为基础,对每个客户端减去上监测延迟时间pk,作为该客户端信息的时间点。

步骤S330,根据上传数据对应的上传时间,生成下发数据。

在本实施例中,对于多个游戏等联网行为,服务器需要产生同一结果下发到多个客户端,以多个客户端的游戏内容进行更新。

步骤S340,将下发数据发送给多个客户端。

根据本实施例的技术方案,在接收到参与同一联网的多个客户端上传的数据后,根据多个客户端的延迟情况对客户端上传数据的时间进行修正,从而能够按照正确的时间前后顺序进行处理,从而得到争取的结果数据并下发给多个客户端,可见本发明的技术方案适于应用到服务器上,有利于服务器对多个客户端参与的联网活动进行正确、及时的反应。

如图4所示,本发明的一个实施例提供了一种与客户端进行通信的方法,本实施例的方法包括:

步骤S410,检测同一联网行为对应的多个客户端之间的延迟时间。

步骤S420,根据联网行为的类型,设置预设阈值的大小。

在本实施例中,预设阈值M的具体大小与不同场景的联网状态有关,例如实时对战游戏的M基本要求小于100ms(毫秒);而多人联网聊天/视频的M则可能只要求小于1s(秒)。

步骤S430,计算多个客户端对应的延迟时间中的最大值与最小值的差值,将差值与预设阈值进行比较。

在本实施例中,判断客户端延迟时间差异超过阈值:将监测到所有客户端与服务器之间的延迟时间记为数组P={p1,p2,……pn};客户端延迟时间差异delta P=Max(P)-Min(P)。判断delta P是否超过预设阈值M。

步骤S440,在差值超过预设阈值时,执行根据多个客户端对应的延迟时间,计算多个客户端的上传数据对应的上传时间。

步骤S450,根据上传数据对应的上传时间,生成下发数据。

步骤S460,将下发数据发送给多个客户端。

步骤S470,根据多个客户端对应的延迟时间,为多个客户端分别分配网络带宽,以用于向多个客户端发送下发数据。

在本实施例中,为保证下发数据可以同时或接近同时发送给多个客户端,以避免多个客户端收到下发数据的时间相差较大,影响多个客户端下次发送数据的时间,采用将有限的带宽按客户端的延迟情况进行分配,使得多个客户端接收到下发数据的时间一致,以多人联网游戏为例,多个客户端的游戏环境可以同时更新,使得多个客户端的用户在同一时间面对同样的游戏环境做出反应,有利于多个客户端的用户正常进行游戏。

在本实施例中,进一步提出两种分配带宽的方式:

(1)下发数据包括必要数据和非必要数据;根据多个客户端对应的延迟时间,针对多个客户端分别判断是否仅发送必要数据,根据判断结果为多个客户端分配带宽。

在本实施例中,在服务器生成下发的数据包时,数据包中可以包括提供给客户端的多个指令,服务器会赋予数据包中的每个指令一个必要性标识符表示该指令的必要程度;最简单的表示方式是采用0/1二分法(还可以进行多级划分):对必要指令(如,规则判定结果、本客户端的指令)标记为1;对非必要指令(如,其他客户端的指令)标记为0。根据每个服务器网络状况选择下发数据包是否需要精简,然后根据判断结果进行带宽分配;本实施例中,保证各客户端能够传输最简更新包。

(2)从预设的总网络带宽中为多个客户端均分配与下发数据的大小匹配的带宽,如果网络带宽中仍存在未分配带宽,则根据多个客户端对应的延迟时间,将未分配带宽分配给多个客户端。

在本实施例中,缩减客户端传输完整数据包之外的带宽,对于富裕的带宽按照延迟时间大小逆序分配。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1