[go: up one dir, main page]

CN102075531B - 一种为客户端传输数据的方法 - Google Patents

一种为客户端传输数据的方法 Download PDF

Info

Publication number
CN102075531B
CN102075531B CN 201010621861 CN201010621861A CN102075531B CN 102075531 B CN102075531 B CN 102075531B CN 201010621861 CN201010621861 CN 201010621861 CN 201010621861 A CN201010621861 A CN 201010621861A CN 102075531 B CN102075531 B CN 102075531B
Authority
CN
China
Prior art keywords
data
client
content
server
propelling movement
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.)
Active
Application number
CN 201010621861
Other languages
English (en)
Other versions
CN102075531A (zh
Inventor
张昊阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Pixel Software Technology Co Ltd
Original Assignee
Beijing Pixel Software Technology Co Ltd
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 Beijing Pixel Software Technology Co Ltd filed Critical Beijing Pixel Software Technology Co Ltd
Priority to CN 201010621861 priority Critical patent/CN102075531B/zh
Publication of CN102075531A publication Critical patent/CN102075531A/zh
Application granted granted Critical
Publication of CN102075531B publication Critical patent/CN102075531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种为客户端传输数据的方法:服务器接收客户端发送的激活传输内容数据请求;服务器对应发起该请求的客户端设置推送内容数据事件,该推送内容数据事件包括推送时机及推送频率,推送时机及推送频率根据内容数据的数据量及客户端的活跃度设置;服务器监控所设置的推送内容数据事件的时机成立后,执行推送内容数据事件,按照推送内容数据事件中设定的推送频率将自身更新的内容数据推送给该客户端。本发明提供的方法均衡服务器给客户端发送内容数据的数据量,且无需客户端等待接收内容数据,有效提高了玩家获取对应信息时的流畅度,降低客户端网络流量,避免拥堵,提高使用客户端的玩家体验度。

Description

一种为客户端传输数据的方法
技术领域
本发明涉及计算机领域中的客户端与服务器之间的交互技术,特别涉及一种为客户端传输数据的方法。
背景技术
随着计算机技术的发展,客户端与服务器之间的交互也越来越多。比如,在大型多人在线角色扮演游戏(MMORPG)中,玩家使用的客户端需要与服务器进行数据交互。在交互过程中,数据传输的效率直接影响服务器效能及玩家使用的客户端与服务器之间的数据传输流量,而玩家使用的客户端与服务器之间的数据传输流量大小直接影响玩家游戏时的延迟。对于MMORPG来说,在紧张激烈的战斗中延迟的时间长短直接决定了玩家游戏体验度,所以尽可能降低服务器与玩家使用的客户端之间的数据传输流量是游戏开发者在设计游戏时的一项重要内容。
在进行游戏过程中,玩家使用的客户端与服务器之间传输的数据主要有两类,一类为动作指令交互数据,比如:玩家自身的角色移动与战斗、控制其他玩家的角色移动与战斗、或者玩家自身的属性变化等等。这类数据的传输数据量比较小,直接需要客户端或服务器接收数据后进行处理,而不需要自身存储;另一类为大块的内容数据,该内容数据不能作为固定资源存储在客户端和服务器上,而是动态变化地,需要不时更新,且需要由服务器定期或不定期地传输给请求的客户端,比如,游戏中的各种公告信息、游戏中的服务器事件或游戏中的服务器活动的列表、或者使用客户端的玩家信件。
目前,在游戏过程中,对于大块的内容数据,服务器和客户端之间传输过程为:
首先,客户端向服务器发送获取内容数据请求,该请求携带要获取内容数据的标识;
其次,服务器接收到客户端发送的该请求后,将对应该请求的内容数据全部或部分发送给客户端;
在本步骤中,服务器根据客户端发送的该请求携带的要获取内容数据的标识,查找到对应该请求的内容数据;
最后,客户端接收到服务器发送的内容数据后,更新自身所存储的对应的内容数据。
采用上述方法虽然可以在游戏过程中,由服务器为作为玩家的客户端发送大块的内容数据,但是,却存在着缺点:在接收到客户端请求后就发送,会造成服务器与客户端之间的瞬间大量数据量,且需要客户端等待接收到数据后再更新,使得使用客户端的玩家体验度降低。
发明内容
有鉴于此,本发明提供一种为客户端传输数据的方法,该方法能够均衡服务器给客户端发送内容数据的数据量,且无需客户端等待接收内容数据,提高使用客户端的玩家体验度。
为达到上述目的,本发明实施的技术方案具体是这样实现的:
一种为客户端传输数据的方法,该方法包括:
服务器接收客户端发送的激活传输内容数据请求;
服务器对应发起该请求的客户端设置推送内容数据事件,该推送内容数据事件包括推送时机及推送频率,推送时机及推送频率根据内容数据的数据量及客户端的活跃度设置;
服务器监控所设置的推送内容数据事件的时机成立后,执行推送内容数据事件,按照推送内容数据事件中设定的推送频率将自身更新的内容数据推送给该客户端。
所述推送时机还根据客户端当前是否使用该内容数据设置,当服务器接收到客户端发送的不接受推送指令时,就将推送时机设置为无限长。
所述设置的推送频率可以采用如下公式计算得到:
abs(预期推送时间-sqrt(当前时间-该客户端上次活跃时间))*权值;
其中,预期推送时间根据内容数据的生成频率及客户端发送激活传输内容数据请求的平均频率设置;该客户端上次活跃时间为在服务器上所建立的客户端活跃度表记录的该客户端活跃度;权值根据内容数据量大小确定;sqrt表示求平方根后取整,abs为取绝对值,*表示相乘,-表示相减。
所述客户端发送激活传输内容数据请求时间间隔大于设置的预期推送时间时,服务器所设置的推送内容数据事件中的推送频率降低直到为0。
所述将自身更新的内容数据推送给该客户端的过程为:
服务器和客户端上分别建立内容数据存储队列,在内容数据存储队列中,将内容数据分块对应块标识存储,当服务器更新内容数据时,将更新的内容数据块存储在服务器的内容数据存储队列的前端;
在服务器将自身更新的内容数据推送给该客户端时,获取客户端所设置的内容存储队列中当前内容数据的块标识后,将自身所设置的内容存储队列中位于该内容数据的块标识之前的所有内容数据块发送给客户端。
由上述技术方案可见,本发明采用主动推送的方式将服务器上更新的内容数据发送给客户端,在推送时机和频率选择上,根据客户端的活跃度及要发送内容数据量确定。这样,本发明就不像现有技术那样,在服务器和客户端之间传输内容数据时造成瞬间的数据量增大,均衡了服务器给客户端发送内容数据的数据量。由于本发明采用主动推送的方式传输内容数据,而不是采用现有技术先由客户端请求后,再由客户端等待接收内容数据的方式,所以无需客户端等待接收内容数据,提高了使用客户端的玩家体验度。另外,在服务器向客户端发送更新的内容数据时,只发送增量更新的内容数据,使得服务器与客户端之间的内容数据传输量降低,进一步提高使用客户端的玩家在游戏过程中的体验度。
附图说明
图1为本发明提供的为客户端传输数据的方法流程图;
图2为本发明采用公式(1)进行推送内容数据事件时,得到的客户端活跃度与推送频率的示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
从现有技术可以看出,在游戏过程中,服务器为客户端传输内容数据时会造成服务器和客户端之间的数据量瞬间增大,是因为服务器在发送内容数据时,并没有考虑服务器和客户端之间的数据量当前值,而只是根据客户端发送的内容数据请求发送的,这样,在发送内容数据时,就有很大可能会使得传输速率变慢,或者影响服务器和客户端之间的其他数据传输,使得使用客户端的玩家体验度降低。
为了克服这个问题,本发明采用主动推送的方式将服务器上更新的内容数据发送给客户端,在推送的时机和频率选择上,根据客户端的活跃度及要发送内容数据量确定。这样,本发明就均衡了服务器给客户端发送内容数据的数据量。
由于本发明采用主动推送的方式传输内容数据,而不是采用先由客户端请求后,再由客户端等待接收内容数据的方式,所以无需客户端在请求后等待接收内容数据,提高了使用客户端的玩家体验度。
本发明在服务器向客户端发送更新的内容数据时,只发送增量更新的内容数据,使得服务器与客户端之间的内容数据传输量降低,进一步提高使用客户端的玩家在游戏过程中的体验度。
图1为本发明提供的为客户端传输数据的方法流程图,其具体步骤为:
步骤101、服务器接收到客户端发送的激活传输内容数据请求。
在本步骤中,比如当使用客户端的玩家使用游戏中的公告板时,服务器就可以检测到,并确定已经激活了传输公告板的内容数据事件。
可以多次执行步骤101,也就是同一客户端可能会多次发送激活传输内容数据请求。
在本步骤中,该请求会携带要激活传输内容标识,以便服务器可以识别出该客户端所请求的激活传输内容数据。
步骤102、服务器对应发起该请求的客户端设置推送内容数据事件,该推送内容数据事件包括推送时机及推送频率,推送时机及推送频率是根据内容数据的数据量及客户端的活跃度设置的。
在本步骤中,在设置推送时机时,对于使用内容数据频繁,较为活跃的客户端设置的推送时机会延迟且推送频率会降低,因为该客户端频繁请求,已经获取了大部分内容数据;对于使用内容数据比较少的客户端设置的推送时机会提前且频率较高,从而降低该客户端在请求内容数据时的内容数据传输堵塞;对于基本不使用内容数据的客户端,则不可以不设置推送内容数据事件,节约资源。
更进一步地,对于推送时机还可以根据客户端当前是否使用该内容数据进行设置,当使用客户端的玩家在游戏中发送不接受推送指令时,服务器接收到,就会重新设置对应该客户端所设置的推送数据内容事件的推送时机,设置为无限长。
在本步骤中,可以将推送时机设置为2分钟后执行推送内容数据事件,并在服务器上建立客户端活跃度表,将客户端发送激活传输内容数据请求的时间作为该客户端的活跃度,每当客户端发送,就更新该客户端的活跃度。
在本步骤中,设置的推送频率可以采用公式(1)计算得到:
abs(预期推送时间-sqrt(当前时间-该客户端上次活跃时间))*权值
                                                   公式(1)
其中,预期推送时间是根据内容数据的生成频率及客户端发送激活传输内容数据请求的平均频率设置的,当客户端发送激活传输内容数据请求的时间间隔刚好等于该设定的预期推送时间时,推送内容数据的频率达到最大,反之推送内容数据的频率越小;该客户端上次活跃时间为在服务器上所建立的客户端活跃度表记录的该客户端活跃度;权值是根据内容数据量大小确定的,如果内容数据量小,则设置比较小,如果内容数据量大,则设置比较大;sqrt表示求平方根后取整,abs为取绝对值。
在这里,公式(1)中的取平方根的目的是拉平推送频率曲线,让在一段时间内服务器与客户端之间的传输内容数据的频率不要相差太大,使得服务器与客户端之间的数据传输量保持稳定。
图2为采用公式(1)进行推送内容数据事件时,得到的客户端活跃度与推送频率的示意图,从图中可以看出,客户端的活跃度间隔越接近设置的预期推送时间,则推送频率越低,反之,则推送频率越大。
在该步骤中,当客户端发送的激活传输内容数据请求时间间隔大于设置的预期推送时间时,比如大于6,也就是30分钟没有操作,则服务器所设置的推送内容数据事件可以设置为完全停止,也就是设置推送频率逐渐降低,直到为0。
步骤103、服务器监控到所设置的推送内容数据事件的时机成立后,执行推送内容数据事件,按照推送内容数据事件中设定的推送频率将自身更新的内容数据推送给该客户端。
在本步骤中,所推送的内容数据是根据步骤101请求携带的内容数据标识确定的。
在本发明中,服务器实时会对要发送给客户端的内容数据更新,为了进一步减小服务器与客户端之间的内容数据传输量,在传输时,只是将针对该客户端更新后的内容数据传输。为了达到这个效果,采用了增量更新方法,也就是在服务器和客户端上分别建立内容数据存储队列,在内容数据存储队列中,将内容数据分块对应块标识存储,当服务器更新内容数据时,就将更新的内容数据块存储在服务器的内容数据存储队列的前端,这样,在服务器发送更新的内容数据时,只需获取客户端所设置的内容存储队列中当前内容数据的块标识后,将自身所设置的内容存储队列中位于该内容数据的块标识之前的所有内容数据块发送给客户端即可。
在本发明中,内容数据块的划分可以根据具体需求处理,这里不再限定。
举一个具体例子说明本发明提供的方法
假设一个网络游戏具有公告板,该公告板用于记录使用客户端的玩家发送的消息,同时也将该公告板记录的消息发送给使用其他客户端的玩家查看,公告板中记录的消息就是内容数据。
服务器要维护公告板,在接收到使用客户端的玩家发送消息或删除消息时,就需要更新公告板,并将更新的公告板发送给发送激活传输公告板内容数据请求的其他客户端。对于服务器来说,要维护的公告板的内容数据量是巨大的。
使用客户端的玩家发送激活公告板内容数据请求,也就是玩家打开公告板界面,这时,服务器就会接收到该请求,在网络游戏中,同时或不同时发送该请求的客户端有很多,所以服务器就会接收到很多该请求,如果直接根据该请求,为发起该请求的客户端传输公告板内容数据,就会引起客户端与服务器之间传输的数据量瞬间增大。因此,采用本发明提供的方法,服务器接收到该请求后,并不立即为客户端发送公告板内容数据,而是为该客户端建立推送公告板内容数据事件,该推送公告板内容数据事件中的推送时机是根据要更新的公告板内容数据量确定,推送频率则是根据客户端的活跃度设定,这样,就可以为不同客户端按照不同推送时机与推送频率推送公告板内容数据。
在该实施例中,客户端也可以在游戏中向服务器发送不接受推送指令,也就是在游戏的副本/PVP状态中设置不接受推送状态的信息,这时,当服务器接收到后,就不为该客户端设置推送公告板内容数据事件。
在该实施例中,当服务器根据所设置的推送公告板内容数据事件为客户端推送公告板内容数据,推送的为更新公告板内容数据。具体地,不采用分页传输的方式,而是将公告板内容数据进行分块,每个使用客户端的玩家数据作为一个块进行保存,在一个玩家更新公告板上的消息时(包括发送或删除),就更新对应该客户端的数据块,当其他玩家要接收推送的公告板内容数据时,也只推送更新的数据块,从而降低了服务器与客户端之间传输的数据量。
在该实施例中,如果客户端有非常大量的公告板内容数据需要更新,服务器采用分页的方式将公告板内容数据推送给客户端。但是,当客户端只是需要更新某些其他客户端的公告板内容数据时,也就是发送排序或筛选请求时,则无需将所有公告板内容数据都推送给该客户端。服务器检测该客户端上设置的内容数据存储队列,确定其已有的内容数据块标识后,将自身内容数据存储队列中在其已有的内容数据块之后更新的内容数据,进行排序或筛选,最后推送给客户端。该客户端接收后,与自身存储的公告板内容数据合并就可以得到公告板,并显示给使用该客户端的玩家。
在该实施例中,如果服务器具有多个,包括一个主控服务器和多个被控服务器,主控服务器与被控服务器之间也可以采用上述方法同步公告板内容数据,确保由不同被控服务器提供服务的客户端之间共享统一的公告板内容数据,主控服务器和多个被控服务器之间的数据传输量也比较小,在可接受的范围内。
以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种为客户端传输数据的方法,其特征在于,该方法包括:
服务器接收客户端发送的激活传输内容数据请求;
服务器对应发起该请求的客户端设置推送内容数据事件,该推送内容数据事件包括推送时机及推送频率,推送时机及推送频率根据内容数据的数据量及客户端的活跃度设置;
服务器监控所设置的推送内容数据事件的时机成立后,执行推送内容数据事件,按照推送内容数据事件中设定的推送频率将自身更新的内容数据推送给该客户端;
设置的所述推送频率可以采用如下公式计算得到:
abs(预期推送时间-sqrt(当前时间-该客户端上次活跃时间))*权值;
其中,预期推送时间根据内容数据的生成频率及客户端发送激活传输内容数据请求的平均频率设置;该客户端上次活跃时间为在服务器上所建立的客户端活跃度表记录的该客户端活跃度;权值根据内容数据量大小确定;sqrt表示求平方根后取整,abs为取绝对值,*表示相乘,-表示相减。
2.如权利要求1所述的方法,其特征在于,所述推送时机还根据客户端当前是否使用该内容数据设置,当服务器接收到客户端发送的不接受推送指令时,将推送时机设置为无限长。
3.如权利要求1~2中任一项权利要求,其特征在于,所述将自身更新的内容数据推送给该客户端的过程为:
服务器和客户端上分别建立内容数据存储队列,在内容数据存储队列中,将内容数据分块对应块标识存储,当服务器更新内容数据时,将更新的内容数据块存储在服务器的内容数据存储队列的前端;
在服务器将自身更新的内容数据推送给该客户端时,获取客户端所设置的内容存储队列中当前内容数据的块标识后,将自身所设置的内容存储队列中位于该内容数据的块标识之前的所有内容数据块发送给客户端。
CN 201010621861 2010-12-27 2010-12-27 一种为客户端传输数据的方法 Active CN102075531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010621861 CN102075531B (zh) 2010-12-27 2010-12-27 一种为客户端传输数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010621861 CN102075531B (zh) 2010-12-27 2010-12-27 一种为客户端传输数据的方法

Publications (2)

Publication Number Publication Date
CN102075531A CN102075531A (zh) 2011-05-25
CN102075531B true CN102075531B (zh) 2013-01-30

Family

ID=44033875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010621861 Active CN102075531B (zh) 2010-12-27 2010-12-27 一种为客户端传输数据的方法

Country Status (1)

Country Link
CN (1) CN102075531B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428290A (zh) * 2013-08-19 2013-12-04 北京网秦天下科技有限公司 数据推送方法和设备
CN105706409B (zh) * 2013-09-06 2019-12-24 诺基亚技术有限公司 用于增强用户对于服务的参与度的方法、设备及系统
CN105743952B (zh) * 2014-12-12 2019-09-17 金蝶软件(中国)有限公司 一种业务处理方法、服务器以及erp客户端
CN105871590A (zh) * 2015-12-15 2016-08-17 乐视移动智能信息技术(北京)有限公司 客户端数据更新方法、客户端和服务器
CN105872058B (zh) * 2016-04-01 2019-03-19 贵州创鑫旅程网络技术有限公司 一种移动终端直播信息的推送方法及其推送装置
CN107846471A (zh) * 2017-11-17 2018-03-27 杭州电魂网络科技股份有限公司 数据下发方法及装置
CN108122129B (zh) * 2017-12-01 2022-02-22 上海子午线新荣科技有限公司 一种数据处理方法、装置及电子设备
CN108156253A (zh) * 2018-01-05 2018-06-12 中汇信息技术(上海)有限公司 一种数据传输方法、装置及系统
CN108449244A (zh) * 2018-04-02 2018-08-24 珠海格力电器股份有限公司 家电设备数据处理方法、装置及系统
CN114157705A (zh) * 2021-12-07 2022-03-08 深圳前海微众银行股份有限公司 一种信息推送方法及装置、存储介质
CN118714149B (zh) * 2024-08-30 2024-11-08 浙江有数数智科技有限公司 一种数据发送方法、装置、介质及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1467656A (zh) * 2003-06-06 2004-01-14 腾讯科技(深圳)有限公司 在即时通信工具中的信息推送方法和系统
CN101299785A (zh) * 2007-04-30 2008-11-05 华为技术有限公司 一种会话处理的方法、系统以及业务服务器
CN101345902A (zh) * 2007-07-13 2009-01-14 上海东登视讯科技有限公司 手机多媒体视频短信的群发方法
CN101360125A (zh) * 2008-09-09 2009-02-04 深圳华为通信技术有限公司 一种基于分组域的推送消息方法和系统
CN101764828A (zh) * 2008-12-23 2010-06-30 华为终端有限公司 推送会话的建立方法、推送系统和相关设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030206192A1 (en) * 2001-03-31 2003-11-06 Mingte Chen Asynchronous message push to web browser
WO2006047280A2 (en) * 2004-10-22 2006-05-04 Sonim Technologies Inc Delay timers for managing internal state changes and messages in user equipment for real-time multimedia applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1467656A (zh) * 2003-06-06 2004-01-14 腾讯科技(深圳)有限公司 在即时通信工具中的信息推送方法和系统
CN101299785A (zh) * 2007-04-30 2008-11-05 华为技术有限公司 一种会话处理的方法、系统以及业务服务器
CN101345902A (zh) * 2007-07-13 2009-01-14 上海东登视讯科技有限公司 手机多媒体视频短信的群发方法
CN101360125A (zh) * 2008-09-09 2009-02-04 深圳华为通信技术有限公司 一种基于分组域的推送消息方法和系统
CN101764828A (zh) * 2008-12-23 2010-06-30 华为终端有限公司 推送会话的建立方法、推送系统和相关设备

Also Published As

Publication number Publication date
CN102075531A (zh) 2011-05-25

Similar Documents

Publication Publication Date Title
CN102075531B (zh) 一种为客户端传输数据的方法
US8874780B2 (en) Data buffering and notification system and methods thereof
CN112418580A (zh) 一种风险控制方法、计算机设备及可读存储介
CN104468395A (zh) 直播间的频道访问方法和系统
CN109889576B (zh) 一种基于博弈论的移动云游戏资源优化方法
CN105577772B (zh) 素材接收方法、素材上传方法及装置
CN104967876A (zh) 弹幕信息处理方法和装置、弹幕信息展示方法和装置
CN107743137B (zh) 一种文件上传方法及装置
CN109462631B (zh) 数据处理方法、装置、存储介质及电子装置
CN104133825A (zh) 一种匹配客户端用户的方法及装置
CN111107022B (zh) 数据传输优化方法、设备及可读存储介质
CN105031922A (zh) 游戏数据的处理方法、游戏服务端及游戏客户端
CN104468509A (zh) 手机网络游戏数据传输的方法、系统和手机用户端
CN106453593B (zh) 一种消息推送方法及装置
CN110417910A (zh) 通知消息的发送方法、装置、服务器及存储介质
CN109474674A (zh) 内容的传输方法和装置、存储介质、电子装置
CN109407997A (zh) 一种数据处理方法、装置、设备及可读存储介质
CN105327508A (zh) 网络游戏运行系统及方法
CN102387178A (zh) 消息更新的方法和装置
CN112861091B (zh) 登录方法、装置、电子设备和存储介质
CN111228818B (zh) 通信交互方法、装置、存储介质、处理器及电子装置
CN112764837B (zh) 数据上报方法、装置、存储介质及终端
US20130137520A1 (en) Game streaming system and method of supporting the multiuser and multiplatform
CN102065097A (zh) 一种客户端与服务器操作同步的方法
CN109413215A (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