CN108540450B - 数据发送、接收方法及装置 - Google Patents
数据发送、接收方法及装置 Download PDFInfo
- Publication number
- CN108540450B CN108540450B CN201810200919.3A CN201810200919A CN108540450B CN 108540450 B CN108540450 B CN 108540450B CN 201810200919 A CN201810200919 A CN 201810200919A CN 108540450 B CN108540450 B CN 108540450B
- Authority
- CN
- China
- Prior art keywords
- receiving
- connection request
- client
- module
- combat
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
- A63F13/86—Watching games played by other players
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/57—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
- A63F2300/577—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player for watching a game played by other players
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据发送、接收方法及装置。其中,该方法包括:通过第一进程接收客户端发送的第一连接请求,其中,第一连接请求用于请求与第一进程建立连接,其中,第一进程提供观战服务;在游戏角色开始执行战斗后,通过第一进程接收第二进程发送的战场数据,其中,第二进程提供战斗服务;通过第一进程将战场数据发送给客户端。本发明解决了相关技术中客户端游戏数据接收不及时导致观战实时性不好的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据发送、接收方法及装置。
背景技术
相关技术中实现观战的方式是通过截图,录像的方式来实现,比如,在服务端的数据库中存储整场游戏的每一帧画面,需要观战时服务器将数据库中存储的整场游戏每一帧画面都发送给客户端,进行游戏过程重现;或者在游戏过程中进行录像,再通过第三方浏览器或播放器观看录像。
这两种观战方式要么先将画面存储在数据库中再发给客户端,要么先录像再通过第三方浏览器或播放器观看录像,无法在游戏一开始就能让观战者跟进游戏过程,因而观战的实时性不强。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据发送、接收方法及装置,以至少解决相关技术中客户端游戏数据接收不及时导致观战实时性不好的技术问题。
根据本发明实施例的一个方面,提供了一种数据发送方法,包括:通过第一进程接收客户端发送的第一连接请求,其中,第一连接请求用于请求与第一进程建立连接,其中,第一进程提供观战服务;在游戏角色开始执行战斗后,通过第一进程接收第二进程发送的战场数据,其中,第二进程提供战斗服务;通过第一进程将战场数据发送给客户端。
根据本发明实施例的一个方面,提供了一种数据接收方法,包括:向第一进程发送第一连接请求,其中,第一连接请求用于请求与第一进程建立连接,其中,第一进程提供观战服务;在游戏角色开始执行战斗后,接收第一进程发送的战场数据,其中,所述战场数据为所述第一进程从所述第二进程获取的,所述第二进程提供战斗服务。
根据本发明实施例的一个方面,提供了一种数据发送装置,包括:第一进程模块,用于接收客户端发送的第一连接请求以及将从第二进程模块获取的战场数据发送给客户端,其中,第一连接请求用于请求与第一进程模块建立连接,其中,第一进程模块提供观战服务;第二进程模块,用于在游戏角色开始执行战斗后,向第一进程模块发送战场数据,其中,第二进程模块提供战斗服务。
根据本发明实施例的一个方面,提供了一种数据接收装置,包括:发送模块,用于向第一进程发送第一连接请求,其中,第一连接请求用于请求与第一进程建立连接,其中,第一进程提供观战服务;接收模块,用于在游戏角色开始执行战斗后,接收第一进程发送的战场数据,其中,所述战场数据为所述第一进程从所述第二进程获取的,所述第二进程提供战斗服务。
根据本发明的又一个实施例,还提供了一种存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在本发明实施例中,采用在游戏角色开始执行战斗后,提供战斗服务的第二进程通过提供观战服务的第一进程将战场数据发送给与第一进程建立连接的客户端的方式,在战斗过程中通过第一进程将战场数据发送给客户端,达到了战场数据的实时转发的目的,从而实现了提高了观战的实时性的技术效果,进而解决了相关技术中客户端游戏数据接收不及时导致观战实时性不好的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例提供的数据发送方法的流程示意图;
图2是根据本发明实施例提供的数据接收方法的流程示意图;
图3是根据本发明实施例提供的数据发送装置的结构框图;
图4是根据本发明实施例提供的数据接收装置的结构框图;
图5是根据本发明优选实施例提供的观战客户端与服务器的连接建立过程的示意图;
图6是根据本发明优选实施例提供的各个模块间的数据流交互的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种数据发送的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
需要说明的是,该方法可以应用于多人在线的游戏观战的场景,该方法可以基于服务器来实现,但并不限于此。
图1是根据本发明实施例提供的数据发送方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤S102,通过第一进程接收客户端发送的第一连接请求,其中,所述第一连接请求用于请求与所述第一进程建立连接,其中,所述第一进程提供观战服务;
步骤S104,在游戏角色开始执行战斗后,通过所述第一进程接收第二进程发送的战场数据,其中,所述第二进程提供战斗服务;
步骤S106,通过所述第一进程将所述战场数据发送给所述客户端。
通过上述步骤,采用在游戏角色开始执行战斗后,提供战斗服务的第二进程通过提供观战服务的第一进程将战场数据发送给与第一进程建立连接的客户端的方式,在战斗过程中通过第一进程将战场数据发送给客户端,达到了战场数据的实时转发的目的,从而不仅提高了观战的实时性而且提高了观战体验感,进而解决了相关技术中客户端游戏数据接收不及时导致观战实时性不好的技术问题。
需要说明的是,上述战场数据可以包括但并不限于此:所述游戏角色在执行战斗的过程中产生的行为数据,所述游戏角色在战斗结束时的战斗结果。需要说明的是,上述行为数据可以包括但并不限于此:游戏角色的位置信息,游戏角色的状态信息:例如遭受敌方攻击的伤害值、攻击武力值、或技能信息等等。上述游戏角色的状态信息可以包括:存活状态,阵亡状态,但并不限于此。通过发送战场数据,与相关技术中直接发送图片或录像的方式,减小了数据的传输容量,减少了服务器的网络性能消耗。
在本发明的一个实施例中,在上述步骤S102之前,上述方法还包括:通过所述第二进程接收所述客户端发送的第二连接请求,其中,所述第二连接请求用于请求与所述第二进程建立连接;通过所述第二进程从一个或多个第一进程中选取用于接收所述第一连接请求的第一进程;通过所述第二进程向所述客户端发送通知消息,其中,所述通知消息用于通知所述客户端与确定的第一进程建立连接。即客户端与第二进程建立连接,使得该客户端可以与其他参与战斗的客户端连接到同一个第二进程中,即可以进入到同一个“房间”中。
需要说明的是,由于并不知晓是连接到第二进程中的客户端是参与战斗的客户端还是观战客户端,因而,需要在通过所述第二进程接收所述客户端发送的第二连接请求之后,上述方法还包括:利用所述第二进程确定所述客户端为观战客户端,以便从一个或多个第一进程中确定用于接收所述第一连接请求的第一进程。
需要说明的是,观战客户端和参与战斗的客户端可以通过连接第二进程时使用不同类型的票(ticket)来区分,因而利用所述第二进程确定所述客户端为观战客户端可以表现为:根据客户端连接第二进程时使用的票的类型来确定该客户端为观战客户端。
需要说明的是,通过所述第二进程从一个或多个第一进程中确定用于接收所述第一连接请求的第一进程可以表现为:利用所述第二进程向选取进程发送第一选取请求消息,其中,所述第一选取请求消息用于指示所述第二进程请求获取第一观战服务地址,所述第一观战服务地址为用于接收所述第一连接请求的第一进程的观战服务地址;所述选取进程用于选取所述第一进程;通过所述选取进程从观战服务地址列表中选取可用的第一进程的观战服务地址,将选取的观战服务地址作为所述第一观战服务地址并发送给所述第二进程。
需要说明的是,通过所述选取进程从观战服务地址列表中选取可用的第一进程的观战服务地址可以按照观战服务地址列表中的观战服务地址对应的第一进程的忙闲状态来选取可用的第一进程的观战服务地址。即按照第一进程的忙闲状态选取可用的第一进程可以实现负载均衡。
需要说明的是,上述选取进程还可以用于在客户端连接或断开时,更新观战服务列表信息,比如观战客户端的连接数量或连接状态等。
需要说明的是,上述客户端也可以连接到战斗中,即可以与其他参与战斗的客户端进入到同一个战斗房间,因而在本发明的一个实施例中,在在通过所述第二进程接收所述客户端发送的第二连接请求之前,上述方法还可以包括:通过第三进程接收所述客户端发送的待观看的战斗的战斗标识,其中,所述第三进程提供游戏服务;通过所述第三进程获取战斗服务地址,其中,所述战斗服务地址是根据所述战斗标识从数据库中获取到的地址信息;通过所述第三进程将所述战斗服务地址发送给所述客户端。
需要说明的是,通过所述第二进程接收所述客户端发送的第二连接请求可以表现为:通过与所述战斗服务地址对应的第二进程接收所述客户端发送的所述第二连接请求。
考虑到网络流量和网络负载的问题,第二进程并不会每一帧都转发战场数据,而是每隔预定时间发送一个关键帧数据,第一进程在接收到关键帧数据时进行计数,当收到的关键帧积累到一定数量(预定阈值)时,将累计的所有关键帧数据发送给客户端,因而在本发明的一个实施例中,上述步骤S104可以表现为:通过所述第一进程接收所述第二进程每隔预定时间发送的所述战场数据;上述步骤S106可以表现为:在通过所述第一进程接收到的战场数据大于预定阈值的情况下,将接收到的所有战场数据发送给所述客户端。
需要说明的是,上述预定时间和预定阈值可以根据实际需要进行调整和设置,但并不限于此。
需要说明的是,上述第一进程,第二进程,第三进程可以运行在同一个设备中,比如运行在一个服务器设备中,也可以运行在多个设备中,在本发明的一个实施例中,在运行在多个设备中时,上述多个设备都为服务侧的设备。
需要说明的是,上述客户端的数量可以是一个或多个,并不限于此。
需要说明的是,上述步骤的执行主体可以是服务器,但并不限于此。
根据本发明实施例,还提供了一种数据接收的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例提供的数据接收方法的流程示意图,如图2所示,该方法包括:
步骤S202,向第一进程发送第一连接请求,其中,所述第一连接请求用于请求与所述第一进程建立连接,其中,所述第一进程提供观战服务;
步骤S204,在游戏角色开始执行战斗后,接收所述第一进程发送的战场数据,其中,所述战场数据为所述第一进程从所述第二进程获取的,所述第二进程提供战斗服务。
通过上述步骤,采用在游戏角色开始执行战斗后,提供战斗服务的第二进程通过提供观战服务的第一进程将战场数据发送给与第一进程建立连接的客户端的方式,在战斗过程中通过第一进程将战场数据发送给客户端,达到了战场数据的实时转发的目的,从而不仅提高了观战的实时性而且提高了观战体验感,进而解决了相关技术中客户端游戏数据接收不及时导致观战实时性不好的技术问题。
需要说明的是,上述战场数据可以包括但并不限于此:所述游戏角色在执行战斗的过程中产生的行为数据,所述游戏角色在战斗结束时的战斗结果。需要说明的是,上述行为数据可以包括但并不限于此:游戏角色的位置信息,游戏角色的状态信息。上述游戏角色的状态信息可以包括:存活状态,阵亡状态,但并不限于此。通过发送战场数据,与相关技术中直接发送图片或录像的方式,减小了数据的传输容量,减少了服务器的网络性能消耗。
在本发明的一个实施例中,在上述步骤S202之前,上述方法还可以包括:向第二进程发送第二连接请求,其中,所述第二连接请求用于请求与所述第二进程建立连接;所述第二进程提供战斗服务;接收所述第二进程发送的通知消息,其中,所述通知消息用于通知与所述第一进程建立连接。
在本发明的一个实施例中,在向第二进程发送第二连接请求之前,上述方法还可以包括:向所述第三进程发送待观看的战斗的战斗标识,其中,所述第三进程提供游戏服务;接收所述第三进程发送的战斗服务地址,其中,战斗服务地址为所述第三进程根据所述战斗标识从数据库中获取到的地址信息,所述战斗服务地址与所述第二进程对应。
需要说明的是,战斗服务地址与第二进程对应可以表现为:该战斗服务地址为第二进程的服务地址,但并不限于此。
需要说明的是,上述步骤的执行主体可以是客户端,但并不限于此。
根据本发明实施例,提供了一种数据发送的产品实施例,图3是根据本发明实施例提供的数据发送装置的结构框图,如图3所示,该装置包括:
第一进程模块32,用于接收客户端发送的第一连接请求以及将从第二进程模块获取的战场数据发送给所述客户端,其中,所述第一连接请求用于请求与所述第一进程模块建立连接,其中,所述第一进程模块提供观战服务;
第二进程模块34,与上述第一进程模块32连接,用于在游戏角色开始执行战斗后,向所述第一进程模块发送战场数据,其中,所述第二进程模块提供战斗服务。
通过上述装置,采用在游戏角色开始执行战斗后,提供战斗服务的第二进程模块34通过提供观战服务的第一进程模块32将战场数据发送给与第一进程模块32建立连接的客户端的方式,在战斗过程中通过第一进程模块32将战场数据发送给客户端,达到了战场数据的实时转发的目的,从而不仅提高了观战的实时性而且提高了观战体验感,进而解决了相关技术中客户端游戏数据接收不及时导致观战实时性不好的技术问题。
需要说明的是,上述战场数据可以包括但并不限于此:所述游戏角色在执行战斗的过程中产生的行为数据,所述游戏角色在战斗结束时的战斗结果。需要说明的是,上述行为数据可以包括但并不限于此:游戏角色的位置信息,游戏角色的状态信息。上述游戏角色的状态信息可以包括:存活状态,阵亡状态,但并不限于此。通过发送战场数据,与相关技术中直接发送图片或录像的方式,减小了数据的传输容量,减少了服务器的网络性能消耗。
在本发明的一个实施例中,上述第二进程模块34,还用于接收所述客户端发送的第二连接请求,从一个或多个第一进程模块32中选取用于接收所述第一连接请求的第一进程模块32,以及向所述客户端发送通知消息,其中,所述通知消息用于通知所述客户端与确定的第一进程模块32建立连接,其中,所述第二连接请求用于请求与所述第二进程模块34建立连接。
需要说明的是,上述第二进程模块34还用于确定所述客户端为观战客户端,以便从一个或多个第一进程模块中确定用于接收所述第一连接请求的第一进程模块32。
在本发明的一个实施例中,上述装置还可以包括:选取进程模块;所述选取进程模块,与上述第二进程模块34连接,用于接收所述第二进程模块34发送的第一选取请求消息,以及从观战服务地址列表中选取可用的第一进程模块32的观战服务地址,将选取的观战服务地址作为第一观战服务地址并发送给所述第二进程模块34;其中,所述第一选取请求消息用于指示所述第二进程模块34请求获取第一观战服务地址,所述第一观战服务地址为用于接收所述第一连接请求的第一进程模块32的观战服务地址。
在本发明的一个实施例中,上述装置还可以包括:第三进程模块,用于接收所述客户端发送的待观看的战斗的战斗标识,根据所述战斗标识从数据库中获取战斗服务地址,以及将获取到的所述战斗服务地址发送给所述客户端,其中,所述第三进程模块提供游戏服务,所述战斗服务地址与所述第二进程模块34对应。
在本发明的一个实施例中,所述第二进程模块34还用于每隔预定时间向所述第一进程模块32发送所述战场数据;所述第一进程模块32还用于在接收到的所述战场数据大于预定阈值的情况下,将接收到的所有战场数据发送给所述客户端。
需要说明的是,上述客户端的数量可以是一个或多个,但并不限于此。
需要说明的是,上述装置可以位于服务器中,但并不限于此。
根据本发明实施例,还提供了一种数据接收装置,图4是根据本发明实施例提供的数据接收装置的结构框图,如图4所示,该装置包括:
发送模块42,用于向第一进程发送第一连接请求,其中,所述第一连接请求用于请求与所述第一进程建立连接,其中,所述第一进程提供观战服务;
接收模块44,与上述发送模块42连接,用于在游戏角色开始执行战斗后,接收所述第一进程发送的战场数据;其中,所述战场数据为所述第一进程从所述第二进程获取的,所述第二进程提供战斗服务。
通过上述装置,采用在游戏角色开始执行战斗后,提供战斗服务的第二进程通过提供观战服务的第一进程将战场数据发送给与第一进程建立连接的客户端的方式,在战斗过程中通过第一进程将战场数据发送给客户端,达到了战场数据的实时转发的目的,从而不仅提高了观战的实时性而且提高了观战体验感,进而解决了相关技术中客户端游戏数据接收不及时导致观战实时性不好的技术问题。
需要说明的是,上述战场数据可以包括但并不限于此:所述游戏角色在执行战斗的过程中产生的行为数据,所述游戏角色在战斗结束时的战斗结果。需要说明的是,上述行为数据可以包括但并不限于此:游戏角色的位置信息,游戏角色的状态信息。上述游戏角色的状态信息可以包括:存活状态,阵亡状态,但并不限于此。通过发送战场数据,与相关技术中直接发送图片或录像的方式,减小了数据的传输容量,减少了服务器的网络性能消耗。
在本发明的一个实施例中,上述发送模块42还用于向第二进程发送第二连接请求,其中,所述第二连接请求用于请求与所述第二进程建立连接;所述第二进程提供战斗服务;上述接收模块44还用于接收所述第二进程发送的通知消息,其中,所述通知消息用于通知与所述第一进程建立连接。
在本发明的一个实施例中,上述发送模块42还用于向所述第三进程发送待观看的战斗的战斗标识,其中,所述第三进程提供游戏服务;上述接收模块44还用于接收所述第三进程发送的战斗服务地址,其中,战斗服务地址为所述第三进程根据所述战斗标识从数据库中获取到的地址信息,所述战斗服务地址与所述第二进程对应。
需要说明的是,战斗服务地址与第二进程对应可以表现为:该战斗服务地址为第二进程的服务地址,但并不限于此。
需要说明的是,上述装置位于客户端中,但并不限于此。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
为了更好地理解本发明,以下结合优选的实施例对本发明做进一步解释。
本发明优选实施例提供了一种多人在线的游戏观战方法和装置,其包括:在游戏服务器的特殊架构下通过战场数据的实时转发实施一种可同时容纳多人在线的游戏观战装置。本装置特别适用于网络游戏实时玩法的观战,运行稳定且观战玩家游戏数据接收及时,观战体验较好。
以下说明游戏服务器的架构,游戏实时对战服务相关的进程或服务可分为以下几种:
游戏服务进程(相当于上述第三进程):通常概念中理解的“服务器”。主要跑一些游戏日常玩法相关的逻辑,例如玩家登录登出、日常玩法的数据保存、购买游戏道具、好友信息等。玩家登录时会首先连接此进程。
战斗服务进程(相当于上述第二进程):主要跑一些实时对战玩法相关的逻辑。当玩家参与实时对战时,玩家客户端的连接会暂时从游戏服务进程切换到此进程。战斗结束后,玩家客户端的连接会切换回游戏服务进程。
数据库(相当于上述数据库):主要负责游戏数据的保存。与该发明相关的功能主要是战斗信息的保存。游戏中的同一时刻可能会有多场战斗,每一场战斗的服务进程地址等信息会存在数据库中。游戏服务进程以及战斗服务进程均可直接访问数据库。
观战服务进程(相当于上述第一进程):主要负责将战场数据转发给客户端。观战玩家将会连接到此进程。该进程会接收战斗进程转发的战场数据,然后将战场数据转发给客户端。该进程可连接的客户端数量,也就是观战玩家的数量,可以按需设置。
图5是根据本发明优选实施例提供的观战客户端与服务器的连接建立过程的示意图,如图5所示,具体步骤描述如下:
(1)客户端向游戏服务进程(GameServer)发送要观看的战斗BattleId(相当于上述战斗标识);
(2)GameServer根据BattleId向数据库DB查询该战斗对应的Battle进程地址;
(3)客户端连接战斗服务进程(BattleServer);
(4)BattleServer收到客户端的连接请求后,判断客户端的身份。如果是正常参与战斗的客户端则执行正常的战斗连接逻辑;如果是观战客户端,则执行(5);
(5)BattleServer查找可用的观战服务,如果没找到,通知客户端连接失败;如果找到,通知客户端连接对应的观战服务;
(6)观战服务进程(BroadCaster)收到客户端的连接请求后,判断观战条件(是否已经有战场数据等),如果条件成立,则执行初始化逻辑,并开始准备发送战场数据给客户端。如果判断条件失败,通知客户端连接失败。
需要说明的是,在本发明优选实施例中,观战客户端接收的数据来自观战服务进程(BroadCaster)的转发,而观战服务进程的数据来自战斗服务进程(BattleServer)的转发。考虑到网络流量份问题,BattleServer并不会每一帧都转发战场数据,而是每隔一个时间阈值(TimeThreshold)(相当于上述预定时间)发送一个关键帧(KeyFrame)的数据。BroadCaster接收到每个关键帧时进行计数,当收到的关键帧累积到一定数量(KeyFrameThreshold)(相当于上述预定阈值)时,将累积的所有关键帧数据转发给连接在此观战服务进程的所有客户端。也就是说,BroadCaster每隔T=KeyFrameThreshold*TimeThreshold的时间向所有的观战客户端发送一次战场数据,已适量减小网络负载。其中,KeyFrameThreshold和TimeThreshold的数值可以根据实际项目需求进行调整。
战斗结束时,BattleServer会将战斗结果通知BroadCaster,BroadCaster再通知所有客户端战斗结果并断开与观战客户端的连接。
图6是根据本发明优选实施例提供的各个模块间的数据流交互的示意图,如图6所示,
其中,游戏服务进程、战斗服务进程、观战服务进程以及数据库的主要功能在前文已经解释,此处不再赘述。下面对观战进程选取模块(相当于上述选进程)以及数据收发模块进行介绍。
观战进程选取模块:主要功能是从当前服务器中选取可用的观战服务进程供客户端连接。该模块需要实现的主要功能有:
(1)选取可用观战服务地址。所有的观战服务启动时都会注册到游戏服务进程,当战斗服务进程发起观战服务选取请求时,该模块首先需要向游戏服务进程请求观战服务地址列表,并根据算法从请求的观战服务地址列表中选取可用的观战服务地址。
(2)更新观战服务列表信息。当客户端连接或者断开时,该模块需要更新观战服务结点的客户端连接数量及状态等信息。
(3)各种异常情况的处理。主要是处理分配观战服务过程出现的各种异常情况。
数据收发模块:主要功能是把战场数据和战斗结果从战斗服务进程发送到观战服务进程。需要实现关键帧数据的发送间隔控制、数据的封装等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (16)
1.一种数据发送方法,其特征在于,包括:
通过第一进程接收客户端发送的第一连接请求,其中,所述第一连接请求用于请求与所述第一进程建立连接,其中,所述第一进程提供观战服务;
在游戏角色开始执行战斗后,通过所述第一进程接收第二进程发送的战场数据,其中,所述第二进程提供战斗服务;
通过所述第一进程将所述战场数据发送给所述客户端;
其中,在通过第一进程接收客户端发送的第一连接请求之前,所述方法还包括:通过所述第二进程接收所述客户端发送的第二连接请求,其中,所述第二连接请求用于请求与所述第二进程建立连接;通过所述第二进程从一个或多个第一进程中选取用于接收所述第一连接请求的第一进程;通过所述第二进程向所述客户端发送通知消息,其中,所述通知消息用于通知所述客户端与确定的第一进程建立连接;
其中,在通过所述第二进程接收所述客户端发送的第二连接请求之前,所述方法还包括:通过第三进程接收所述客户端发送的待观看的战斗的战斗标识,其中,所述第三进程提供游戏服务;通过所述第三进程获取战斗服务地址,其中,所述战斗服务地址是根据所述战斗标识从数据库中获取到的地址信息;通过所述第三进程将所述战斗服务地址发送给所述客户端;
其中,从一个或多个第一进程中选取用于接收所述第一连接请求的第一进程是,根据所述一个或多个第一进程的忙闲状态,来确定用于接收所述第一连接请求的第一进程的。
2.根据权利要求1所述的方法,其特征在于,所述战场数据包括:所述游戏角色在执行战斗的过程中产生的行为数据,所述游戏角色在战斗结束时的战斗结果。
3.根据权利要求1所述的方法,其特征在于,在通过所述第二进程接收所述客户端发送的第二连接请求之后,所述方法还包括:
利用所述第二进程确定所述客户端为观战客户端,以便从一个或多个第一进程中确定用于接收所述第一连接请求的第一进程。
4.根据权利要求1所述的方法,其特征在于,通过所述第二进程从一个或多个第一进程中确定用于接收所述第一连接请求的第一进程包括:
利用所述第二进程向选取进程发送第一选取请求消息,其中,所述第一选取请求消息用于指示所述第二进程请求获取第一观战服务地址,所述第一观战服务地址为用于接收所述第一连接请求的第一进程的观战服务地址;所述选取进程用于选取所述第一进程;
通过所述选取进程从观战服务地址列表中选取可用的第一进程的观战服务地址,将选取的观战服务地址作为所述第一观战服务地址并发送给所述第二进程。
5.根据权利要求1所述的方法,其特征在于,通过所述第二进程接收所述客户端发送的第二连接请求包括:通过与所述战斗服务地址对应的第二进程接收所述客户端发送的所述第二连接请求。
6.根据权利要求1所述的方法,其特征在于,
通过所述第一进程接收第二进程发送的战场数据包括:通过所述第一进程接收所述第二进程每隔预定时间发送的所述战场数据;
通过所述第一进程将所述战场数据发送给所述客户端包括:在通过所述第一进程接收到的战场数据大于预定阈值的情况下,将接收到的所有战场数据发送给所述客户端。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述客户端的数量为一个或多个。
8.一种数据接收方法,其特征在于,包括:
向第一进程发送第一连接请求,其中,所述第一连接请求用于请求与所述第一进程建立连接,其中,所述第一进程提供观战服务;
在游戏角色开始执行战斗后,接收所述第一进程发送的战场数据,其中,所述战场数据为所述第一进程从第二进程获取的,所述第二进程提供战斗服务;
其中,在向第一进程发送第一连接请求之前,所述方法还包括:向第二进程发送第二连接请求,其中,所述第二连接请求用于请求与所述第二进程建立连接;所述第二进程提供战斗服务,其中,通过第二进程从一个或多个第一进程中选取用于接收所述第一连接请求的第一进程,以令所述第二进程提供战斗服务;接收所述第二进程发送的通知消息,其中,所述通知消息用于通知与所述第一进程建立连接;
其中,在向第二进程发送第二连接请求之前,所述方法还包括:向第三进程发送待观看的战斗的战斗标识,其中,所述第三进程提供游戏服务;接收所述第三进程发送的战斗服务地址,其中,战斗服务地址为所述第三进程根据所述战斗标识从数据库中获取到的地址信息,所述战斗服务地址与所述第二进程对应;
其中,从一个或多个第一进程中选取用于接收所述第一连接请求的第一进程是,根据所述一个或多个第一进程的忙闲状态,来确定用于接收所述第一连接请求的第一进程的。
9.根据权利要求8所述的方法,其特征在于,所述战场数据包括:所述游戏角色在执行战斗的过程中产生的行为数据,所述游戏角色在战斗结束时的战斗结果。
10.一种数据发送装置,其特征在于,包括:
第一进程模块,用于接收客户端发送的第一连接请求以及将从第二进程模块获取的战场数据发送给所述客户端,其中,所述第一连接请求用于请求与所述第一进程模块建立连接,其中,所述第一进程模块提供观战服务;
第二进程模块,用于在游戏角色开始执行战斗后,向所述第一进程模块发送战场数据,其中,所述第二进程模块提供战斗服务;
其中,所述第二进程模块,还用于接收所述客户端发送的第二连接请求,从一个或多个第一进程模块中选取用于接收所述第一连接请求的第一进程模块,以及向所述客户端发送通知消息,其中,所述通知消息用于通知所述客户端与确定的第一进程模块建立连接,其中,所述第二连接请求用于请求与所述第二进程模块建立连接;
其中,所述装置还包括:第三进程模块;所述第三进程模块,用于接收所述客户端发送的待观看的战斗的战斗标识,根据所述战斗标识从数据库中获取战斗服务地址,以及将获取到的所述战斗服务地址发送给所述客户端,其中,所述第三进程模块提供游戏服务,所述战斗服务地址与所述第二进程模块对应;
其中,从一个或多个第一进程模块中选取用于接收所述第一连接请求的第一进程模块是,根据所述一个或多个第一进程模块的忙闲状态,来确定用于接收所述第一连接请求的第一进程模块的。
11.根据权利要求10所述的装置,其特征在于,所述第二进程模块还用于确定所述客户端为观战客户端,以便从一个或多个第一进程模块中确定用于接收所述第一连接请求的第一进程模块。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:选取进程模块;
其中,所述选取进程模块,用于接收所述第二进程模块发送的第一选取请求消息,以及从观战服务地址列表中选取可用的第一进程模块的观战服务地址,将选取的观战服务地址作为第一观战服务地址并发送给所述第二进程模块;其中,所述第一选取请求消息用于指示所述第二进程模块请求获取第一观战服务地址,所述第一观战服务地址为用于接收所述第一连接请求的第一进程模块的观战服务地址。
13.根据权利要求10所述的装置,其特征在于,所述第二进程模块还用于每隔预定时间向所述第一进程模块发送所述战场数据;所述第一进程模块还用于在接收到的所述战场数据大于预定阈值的情况下,将接收到的所有战场数据发送给所述客户端。
14.一种数据接收装置,其特征在于,包括:
发送模块,用于向第一进程发送第一连接请求,其中,所述第一连接请求用于请求与所述第一进程建立连接,其中,所述第一进程提供观战服务;
接收模块,用于在游戏角色开始执行战斗后,接收所述第一进程发送的战场数据,其中,所述战场数据为所述第一进程从第二进程获取的,所述第二进程提供战斗服务;
其中,所述发送模块还用于向第二进程发送第二连接请求,其中,所述第二连接请求用于请求与所述第二进程建立连接;所述第二进程提供战斗服务,其中,通过第二进程从一个或多个第一进程中选取用于接收所述第一连接请求的第一进程,以令所述第二进程提供战斗服务;所述接收模块还用于接收所述第二进程发送的通知消息,其中,所述通知消息用于通知与所述第一进程建立连接;
其中,所述发送模块还用于向第三进程发送待观看的战斗的战斗标识,其中,所述第三进程提供游戏服务;所述接收模块还用于接收所述第三进程发送的战斗服务地址,其中,战斗服务地址为所述第三进程根据所述战斗标识从数据库中获取到的地址信息,所述战斗服务地址与所述第二进程对应;
其中,从一个或多个第一进程中选取用于接收所述第一连接请求的第一进程是,根据所述一个或多个第一进程的忙闲状态,来确定用于接收所述第一连接请求的第一进程的。
15.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法或权利要求8或9所述的方法。
16.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法或权利要求8或9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810200919.3A CN108540450B (zh) | 2018-03-12 | 2018-03-12 | 数据发送、接收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810200919.3A CN108540450B (zh) | 2018-03-12 | 2018-03-12 | 数据发送、接收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108540450A CN108540450A (zh) | 2018-09-14 |
CN108540450B true CN108540450B (zh) | 2021-03-23 |
Family
ID=63484134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810200919.3A Active CN108540450B (zh) | 2018-03-12 | 2018-03-12 | 数据发送、接收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108540450B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109771957B (zh) * | 2019-02-02 | 2022-08-09 | 网易(杭州)网络有限公司 | 游戏中观战的方法及装置、电子设备、存储介质 |
CN111416849B (zh) * | 2020-03-13 | 2021-07-13 | 腾讯科技(深圳)有限公司 | 断线重连方法、装置、系统和计算机设备 |
CN111672105A (zh) * | 2020-05-28 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 基于虚拟环境的视野数据包发送方法、装置、设备及介质 |
CN111821696B (zh) * | 2020-08-21 | 2024-02-02 | 网易(杭州)网络有限公司 | 一种游戏观战的方法及装置、电子设备、存储介质 |
CN112148495B (zh) * | 2020-10-09 | 2023-08-08 | 网易(杭州)网络有限公司 | 游戏集群管理方法、装置、存储介质和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805361A (zh) * | 2005-11-29 | 2006-07-19 | 珠海市西山居软件有限公司 | 通过浏览器实时观看玩家游戏的方法及装置 |
CN101018237A (zh) * | 2007-01-16 | 2007-08-15 | 成都金山互动娱乐科技有限公司 | 一种网络游戏在线同步解说播放的方法 |
KR20130127756A (ko) * | 2012-05-15 | 2013-11-25 | 주식회사 넥슨코리아 | 캐릭터 조종권한 이전 시스템 및 그 방법 |
CN106330917A (zh) * | 2016-08-26 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 数据展示方法及装置 |
CN206008008U (zh) * | 2016-08-30 | 2017-03-15 | 竞技世界(北京)网络技术有限公司 | 一种基于局域网的棋牌类游戏旁观系统 |
-
2018
- 2018-03-12 CN CN201810200919.3A patent/CN108540450B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805361A (zh) * | 2005-11-29 | 2006-07-19 | 珠海市西山居软件有限公司 | 通过浏览器实时观看玩家游戏的方法及装置 |
CN101018237A (zh) * | 2007-01-16 | 2007-08-15 | 成都金山互动娱乐科技有限公司 | 一种网络游戏在线同步解说播放的方法 |
KR20130127756A (ko) * | 2012-05-15 | 2013-11-25 | 주식회사 넥슨코리아 | 캐릭터 조종권한 이전 시스템 및 그 방법 |
CN106330917A (zh) * | 2016-08-26 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 数据展示方法及装置 |
CN206008008U (zh) * | 2016-08-30 | 2017-03-15 | 竞技世界(北京)网络技术有限公司 | 一种基于局域网的棋牌类游戏旁观系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108540450A (zh) | 2018-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540450B (zh) | 数据发送、接收方法及装置 | |
CN101180109B (zh) | 多玩家视频游戏系统 | |
CN110830735B (zh) | 一种视频生成方法、装置、计算机设备和存储介质 | |
CN107172444B (zh) | 一种网络直播重连方法及系统 | |
WO2017005162A1 (zh) | 游戏数据的处理方法、游戏服务端及游戏客户端 | |
CN111432158B (zh) | 媒体节点的负载均衡方法及装置、存储介质、电子装置 | |
CN104009969B (zh) | 一种网络游戏系统的通讯方法 | |
CN103581197B (zh) | 跨服务器实现团队数据处理的方法和系统 | |
CN106033487A (zh) | 用户匹配方法及装置 | |
JP2023508061A (ja) | アカウントアクセス方法及びその装置、記憶媒体、並びに電子機器 | |
CN110652730A (zh) | 对战匹配方法、装置及电子设备 | |
CN110876078B (zh) | 动画图片的处理方法、装置、存储介质和处理器 | |
CN110351569A (zh) | 一种直播内容处理方法、装置、设备及介质 | |
CN111195432B (zh) | 对象显示方法和装置、存储介质及电子装置 | |
CN105450506B (zh) | 一种实时信息交互方法、装置及系统 | |
CN111111182B (zh) | 一种游戏视角确定方法、装置和服务器 | |
US20190036793A1 (en) | Network service implementation method, service controller, and communications system | |
CN109688225B (zh) | 一种通信方法及装置 | |
CN109714328B (zh) | 游戏集群的容量调整方法和装置 | |
CN112494931A (zh) | 云游戏控制方法、系统、服务器和计算机可读存储介质 | |
KR101883671B1 (ko) | 노드 분산 방법 및 이를 수행하는 관리 서버 | |
CN112311689B (zh) | 突发流量的分流方法、计算机设备及可读存储介质 | |
KR20120094321A (ko) | 온라인 게임 클라이언트간 피어 투 피어 통신방법 | |
CN101410822A (zh) | 服务器镜像方法及系统 | |
CN113810775B (zh) | 语音视频连线系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |