CN114615512A - 游戏赛事直播系统、游戏赛事直播方法 - Google Patents

游戏赛事直播系统、游戏赛事直播方法 Download PDF

Info

Publication number
CN114615512A
CN114615512A CN202210204642.8A CN202210204642A CN114615512A CN 114615512 A CN114615512 A CN 114615512A CN 202210204642 A CN202210204642 A CN 202210204642A CN 114615512 A CN114615512 A CN 114615512A
Authority
CN
China
Prior art keywords
game
cluster
client
live
live broadcast
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.)
Pending
Application number
CN202210204642.8A
Other languages
English (en)
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.)
Guangzhou Boguan Information Technology Co Ltd
Original Assignee
Guangzhou Boguan Information 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 Guangzhou Boguan Information Technology Co Ltd filed Critical Guangzhou Boguan Information Technology Co Ltd
Priority to CN202210204642.8A priority Critical patent/CN114615512A/zh
Publication of CN114615512A publication Critical patent/CN114615512A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25816Management of client data involving client authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features 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/57Features 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/577Features 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)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Graphics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开涉及游戏直播技术领域,提供了游戏赛事直播系统、游戏赛事直播方法。其中,上述系统包括:面向服务端的第一集群、面向客户端的第二集群、通信存储中间件;所述面向服务器的第一集群,用于接收游戏比赛服务器发送的游戏赛事的游戏直播数据;所述面向客户端的第二集群,用于与观战客户端进行连接;所述第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群;所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。本方案通过第一集群、第二集群和通信存储中间件,可以与游戏服务器进行解耦,在实现游戏直播的同时,降低游戏服务器的算力开销,提高游戏赛事直播系统的并发能力。

Description

游戏赛事直播系统、游戏赛事直播方法
技术领域
本公开涉及游戏直播技术领域,具体而言,涉及一种游戏赛事直播系统、游戏赛事直播方法。
背景技术
游戏玩家可以通过观看游戏直播来学习游戏技术,且游戏直播本身具有观赏性。所以,游戏直播也越来越受到欢迎。
相关技术中,在进行游戏直播时,游戏直播是嵌入在游戏客户端中的,直播的战斗协议会原样广播给客户端,客户端在接收到战斗协议后,还原战斗场景,呈现直播画面。
然而,由于游戏赛事的战斗都是发生在游戏比赛服务器。这样,就需要从游戏比赛服务器将战斗协议广播给游戏本地服务器,再从游戏本地服务器广播给观看直播的观众。这样,会增加游戏服务器的算力消耗,能够支撑的观众的数量也较少。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种游戏赛事直播系统、游戏赛事直播方法、计算机可读存储介质、电子设备,进而至少在一定程度上改善现有的游戏赛事直播系统对游戏服务器的算力的消耗、以及能够支撑的观众数量较少的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供了一种游戏赛事直播系统,包括:面向服务端的第一集群、面向客户端的第二集群、通信存储中间件;所述面向服务器的第一集群,用于接收游戏比赛服务器发送的游戏赛事的游戏直播数据;所述面向客户端的第二集群,用于与观战客户端进行连接所述第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群;所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。
在本公开的一种示例性实施例中,基于前述方案,所述第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群,包括:所述第一集群通过所述通信存储中间件中的消息队列将所述游戏直播数据发送给所述第二集群。
在本公开的一种示例性实施例中,基于前述方案,所述第二集群中包括多个节点;所述第一集群通过所述通信存储中间件中的消息队列将所述游戏直播数据发送给所述第二集群,包括:所述第一集群在所述通信存储中间件中建立与所述游戏赛事对应的目标消息队列,所述目标消息队列的数量基于所述第二集群中的节点的数量确定;所述第一集群将接收到的所述游戏比赛服务器发送的所述游戏赛事的当前游戏直播数据保存在所述通信存储中间件中,并向所述目标消息队列发送所述当前游戏直播数据到来的消息;所述第二集群中的节点在监听到与其关联的目标消息队列中的所述当前游戏直播数据到来的消息时,从所述通信存储中间件中获取所述当前游戏直播数据。
在本公开的一种示例性实施例中,基于前述方案,所述第二集群中的每个所述节点用于单独管理与其连接的观战客户端;所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端:所述第二集群中的节点将其从所述通信存储中间件中获取到的所述当前游戏直播数据广播给与其连接的所述观战客户端。
在本公开的一种示例性实施例中,基于前述方案,所述游戏赛事直播系统还包括游戏本地服务器;所述观战客户端包括登录所述游戏本地服务器的游戏客户端。
在本公开的一种示例性实施例中,基于前述方案,所述游戏本地服务器用于生成与所述游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌;所述第一集群和所述第二集群基于所述临时身份令牌对所述游戏客户端的游戏玩家进行身份校验。
在本公开的一种示例性实施例中,基于前述方案,所述游戏本地服务器还用于将生成的与所述游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌发送至所述游戏客户端;所述第一集群和所述第二集群基于所述临时身份令牌对所述游戏客户端的游戏玩家进行身份校验,包括:所述游戏本地服务器将所述临时身份令牌发送至所述第一集群;所述第一集群将接收到的所述临时身份令牌存储至所述通信存储中间件中;在所述游戏客户端连接所述第二集群时,所述第二集群获取所述游戏客户端中的游戏玩家的临时身份令牌;所述第二集群将获取到的所述临时身份令牌与所述通信存储中间件中存储的临时身份令牌进行匹配,以根据匹配结果确定所述游戏玩家的身份校验结果。
在本公开的一种示例性实施例中,基于前述方案,所述根据匹配结果确定所述游戏玩家的身份校验结果,包括:在匹配成功时,所述游戏玩家的身份校验通过;在所述游戏玩家的身份校验通过时,所述游戏客户端登录到所述第二集群。
在本公开的一种示例性实施例中,基于前述方案,所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,包括:所述第二集群将接收到的所述游戏直播数据发送给登录到所述第二集群的观战客户端。
在本公开的一种示例性实施例中,基于前述方案,所述第二集群还用于接收所述观战客户端发送的弹幕数据,并将所述弹幕数据广播给与所述第二集群连接的观战客户端。
在本公开的一种示例性实施例中,基于前述方案,所述游戏赛事直播系统还包括游戏本地服务器,所述游戏本地服务器用于对所述观战客户端发送的弹幕请求行验证,并在所述弹幕请求验证成功后,将所述弹幕请求发送至所述第二集群,以使与所述第二集群连接的观战客户端能够显示所述弹幕请求中的弹幕数据。
在本公开的一种示例性实施例中,基于前述方案,所述游戏本地服务器用于对所述观战客户端发送的弹幕请求进行验证,包括:所述游戏本地服务器用于验证所述观战客户端的弹幕发送权限。
在本公开的一种示例性实施例中,基于前述方案,所述第二集群中包括多个节点,每个节点用于单独管理与其连接的观战客户端;所述在所述弹幕请求验证成功后,将所述弹幕请求发送至所述第二集群,以使与所述第二集群连接的观战客户端能够显示所述弹幕请求中的弹幕数据,包括:所述游戏本地服务器将所述弹幕请求发送至所述第一集群;所述第一集群基于所述通信存储中间件将所述弹幕请求发送至所述第二集群中的各个节点;所述第二集群中的各个节点将所述弹幕请求中的弹幕数据广播至与其连接的观战客户端,以使与其连接的观战客户端能够显示所述弹幕数据。
在本公开的一种示例性实施例中,基于前述方案,所述通信存储中间件包括远程字典服务集群;所述第一集群基于所述通信存储中间件将所述弹幕请求发送至所述第二集群中的各个节点包括:所述第一集群将所述弹幕请求保存在所述远程字典服务集群;所述远程字典服务集群基于发布和订阅机制将所述弹幕请求发送至所述第二集群中的各个节点。
在本公开的一种示例性实施例中,基于前述方案,其特征在于,所述第一集群还用于将所述游戏赛事的游戏直播数据保存在数据库中;所述第二集群还用于响应所述观战客户端对所述游戏赛事的回放请求,从所述数据库中获取所述游戏赛事的游戏直播数据,并将所述游戏直播数据发送至所述观战客户端,以使所述观战客户端能够对所述游戏赛事进行回放。
根据本公开的第二方面,提供了一种游戏赛事直播方法,包括:面向服务端的第一集群接收游戏比赛服务器发送的游戏赛事直播数据;所述第一集群通过通信存储中间件将所述游戏赛事直播数据发送给面向客户端的第二集群;所述第二集群将接收到的所述游戏赛事直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。
根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第二方面所述的游戏赛事直播方法。
根据本公开实施例的第四方面,提供了一种电子设备,包括:处理器;以及,存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第二方面所述的游戏赛事直播方法。
由上述技术方案可知,本公开示例性实施例中的游戏赛事直播系统、游戏赛事直播方法,以及实现所述游戏赛事直播方法的计算机可读存储介质及电子设备,至少具备以下优点和积极效果:
在本公开的一些实施例所提供的技术方案中,游戏赛事直播系统包括:面向服务端的第一集群、面向客户端的第二集群、通信存储中间件;其中,第一集群用于接收游戏比赛服务器发送的游戏赛事的游戏直播数据;第二集群,用于与观战客户端进行连接;第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群;第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。与相关技术相比,一方面,本公开的游戏赛事直播系统通过第一集群、第二集群和通信存储中间件,可以实现游戏赛事的直播,进而减少游戏服务器的算力开销,提升游戏服务器的性能;另一方面,本公开基于面向客户端的第二集群,可以提升游戏赛事直播系统所支撑的游戏客户端的数量,提高游戏赛事直播系统的并发能力。
本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开一示例性实施例中的游戏赛事直播系统的结构示意图;
图2示出本公开一示例性实施例中的第一集群向第二集群发送游戏直播数据的方法的流程示意图;
图3示出本公开一示例性实施例中的对游戏玩家进行身份校验的方法的流程示意图;
图4示出本公开一示例性实施例中的实现游戏赛事直播的弹幕发送的方法的流程示意图;
图5示出本公开一示例性实施例中的对游戏赛事直播进行回放的方法的流程示意图;
图6示出本公开一示例性实施例中的游戏赛事直播方法的流程示意图;
图7示出本公开一示例性实施例中的游戏赛事直播系统的架构图;
图8示出本公开一示例性实施例中的直播集群的架构图;
图9示出本公开示例性实施例中的存储介质的结构示意图;
图10示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
游戏玩家可以通过观看游戏直播来学习游戏技术,且游戏直播本身具有观赏性。所以,游戏直播也越来越受到欢迎。
相关技术中,将游戏的战斗直播嵌入在游戏客户端中,直播的战斗协议都会原样广播给在游戏客户端观看的游戏玩家。
然而,游戏赛事的战斗都是发生在中心服,即游戏比赛服务器。这样,战斗协议得从中心服广播给游戏本地服务器,再从游戏本地服务器广播给直播玩家。这就会增加游戏本地服务器的算力消耗。同时,其支撑的观众量级也较少,满足不了越来越多的观众量的需求。且由于游戏本地服务器的广播是单向的,现有的游戏赛事直播系统不能支持弹幕问答。
在本公开的实施例中,首先提供了一种游戏赛事直播系统,至少在一定程度上克服上述相关技术中存在的缺陷。
图1示出本公开一示例性实施例中游戏赛事直播系统,该游戏赛事直播系统包括面向服务端的第一集群110、面向客户端的第二集群120、以及通信存储中间件130。其中:
所述面向服务器的第一集群110,用于接收游戏比赛服务器发送的游戏赛事的游戏直播数据;
所述面向客户端的第二集群120,用于与观战客户端进行连接;
所述第一集群110通过所述通信存储中间件130将所述游戏直播数据发送给所述第二集群120;
所述第二集群120将接收到的所述游戏直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。
在图1所示实施例所提供的技术方案中,游戏赛事直播系统包括:面向服务端的第一集群、面向客户端的第二集群、通信存储中间件;其中,第一集群用于接收游戏比赛服务器发送的游戏赛事的游戏直播数据;第二集群,用于与观战客户端进行连接;第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群;第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。与相关技术相比,一方面,本公开的游戏赛事直播系统通过第一集群、第二集群和通信存储中间件,可以实现游戏赛事的直播,进而减少游戏服务器的算力开销,提升游戏服务器的性能;另一方面,本公开基于面向客户端的第二集群,可以提升游戏赛事直播系统所支撑的游戏客户端的数量,提高游戏赛事直播系统的并发能力。
以下结合图2至图对图5对图1所示实施例的游戏赛事直播系统进行详细阐述:
在本公开中,第一集群110可以包括第一服务器集群、第二集群120可以包括第二服务器集群。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
在示例性的实施方式中,面向服务端的第一集群110可以包括第一GO语言集群、面向客户端的第二集群120可以包括第二GO语言集群。
其中,Go语言是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易,Go语言被设计成一门应用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。当然,第一集群和第二集群还可以是其他形式的服务器集群,本示例性实施方式对此不做特殊限定。
示例性的,所述第一集群110通过所述通信存储中间件130将所述游戏直播数据发送给所述第二集群120,包括:所述第一集群通过所述通信存储中间件中的消息队列将所述游戏直播数据发送给所述第二集群。
在示例性的实施方式中,第二集群与观战客户端进行直连,二者之间可以基于socket的Protobuf协议传输数据。本公开中的游戏赛事直播系统还可以包括面向客户端的前端负载均衡集群,该负载均衡集群可以用于分配观战客户端与第二集群的连接。
第二集群中可以包括多个节点,第二集群中的每个节点可以担负管理其所连接的客户端的seesion(即会话控制)。可以根据直播业务的需要,扩展第二集群中的节点数,进而提高游戏直播系统的并发能力。
其中,第二集群中的节点可以理解为网络节点服务器,网络节点服务器是一种服务器装置,节点服务器是针对服务器集群来说的。主要应用在WEB(World Wide Web,全球广域网)、FTP(File Transfer Protocol,文件传输协议)、VPN(Virtual Private Network,虚拟专用网络)等等的服务上。节点服务器并不时单指某一种服务器。它由多个节点和管理装置整体的管理单元构成。
示例性的,当第二集群中包括多个节点时,游戏赛事直播系统可以根据图2所示的方法实现第一集群向第二集群发送游戏直播数据的功能。参考图2,在本公开的游戏赛事直播系统中,第一集群向第二集群发送游戏直播数据的方法可以包括步骤S210至步骤S230。
在步骤S210中,第一集群在所述通信存储中间件中建立与所述游戏赛事对应的目标消息队列。
其中,目标消息队列的数量基于所述第二集群中的节点的数量确定。
示例性的,本公开中的游戏赛事直播系统还可以包括游戏比赛服务器。游戏比赛服务器用于提供游戏赛事的游戏直播数据。第一集群可以和游戏比赛服务器直连,以获取游戏比赛服务器提供的游戏赛事的游戏直播数据。第一集群可以理解为一个简易的WEB服务器,第一集群和游戏比赛服务器之间可以通过HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议进行通信。
举例而言,游戏比赛服务器可以开启游戏比赛直播,并为该游戏比赛直播生成全局唯一标识,如为当前游戏比赛直播生成的全局唯一标识为ID-A。游戏比赛服务器可以通过HTTP请求通知第一集群,全局唯一标识为ID-A的游戏比赛即将开始直播。第一集群在接收到游戏比赛服务器发送的关于ID-A的游戏比赛即将开始直播的消息后,可以在通信存储中间件中为第二集群中的每个节点建立一个与其关联的消息队列,每个节点都可以监听与自己关联的消息队列。
其中,每个消息的队列命名规则可以为:游戏比赛直播的全局唯一标识+第一集群中的节点标识,如第一集群中有3个节点,节点标识分别为111、222、333,则第一集群在接收到全局唯一标识为ID-A的游戏比赛开始直播的消息后,可以在通信存储中间件中建立3个消息队列,每个消息队列可以分别命名为:ID-A111、ID-A222、ID-A333。
游戏比赛服务器中可以同时进行多个游戏赛事直播,对于每个游戏赛事而言,第一集群都可以根据第二集群中的节点数,在通信存储中间件中生成与该游戏赛事对应的多个消息队列。例如,有M场正在进行的游戏赛事直播,第二集群中有N个节点,那么,通信存储中间件中就会存在M乘以N个消息队列。
接下来,在步骤S220中,第一集群将接收到的所述游戏比赛服务器发送的所述游戏赛事的当前游戏直播数据保存在所述通信存储中间件中,并向所述目标消息队列发送所述当前游戏直播数据到来的消息。
示例性的,游戏比赛服务器进入游戏比赛后,可以把当前游戏直播数据发送给第一集群,第一集群在接收到游戏比赛服务器发送的当前游戏直播数据后,可以将当前游戏直播数据保存在通信存储中间件中,并向所述游戏赛事对应的目标消息队列发送当前游戏直播数据到来的消息。
在示例性的实施方式中,游戏赛事可以包含回合制游戏的游戏比赛。游戏直播数据可以包括每个回合的战斗协议数据,每个回合的战斗协议数据可以包括当前战斗回合的协议流数据和当前战斗回合的快照数据,并向通信存储中间件中与当前游戏赛事对应的各目标消息队列中发送当前回合数据到来的消息。
在示例性的实施方式中,本公开的游戏赛事直播系统中的通信存储中间件可以包括远程字典服务(Redis,Remote Dictionary Server)集群,即Redis集群。当然,通信存储中间件也可以包括其它的具有缓存功能的数据库或者服务,如其它的分布式缓存系统、Kafka平台等,本示例性实施方式对此不做特殊限定。
以回合制游戏比赛的直播为例,当游戏比赛开始后,游戏比赛服务器可以把每个回合的战斗协议数据发送给第一集群,即,把当前战斗回合的协议流数据和当前战斗回合的快照数据发送给第一集群。第一集群在接收到当前战斗回合的协议流数据和快照数据后,可以将其保存在Redis数据库中,并向Redis中与当前游戏赛事对应的各目标消息队列中发送当前回合数据到来的消息。
接下来,在步骤S230中,第二集群中的节点在监听到与其关联的目标消息队列中的所述当前游戏直播数据到来的消息时,从所述通信存储中间件中获取所述当前游戏直播数据。
继续以上述的回合制游戏比赛为例,第二集群中的各节点在监听到与其关联的目标消息队列中的当前游戏直播数据到来的消息时,可以从Redis数据库中获取协议流数据。
示例性的,所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,可以包括:第二集群中的节点将其从所述通信存储中间件中获取到的所述当前游戏直播数据广播给与其连接的所述观战客户端。
继续以上述的回合制游戏比赛为例,第二集群中的每个节点在监听到新回合的数据到来的消息后,可以从Redis数据库中获取当前的协议流数据,并将获取到的协议流数据广播给自己节点上加入游戏赛事直播的观战客户端。
通过上述的步骤S210至步骤S230,游戏比赛服务器就可以基于第一集群110、通信存储中间件130、第二集群120,将游戏赛事的直播数据发送给观战客户端,从而实现游戏赛事的直播。
由于游戏直播数据是一个时序数据,必须要有顺序,而且丢掉任何一个游戏直播数据都可能导致观战客户端的播放失误。所以,在本公开中,是先将游戏直播数据保存到通信存储中间件中,然后再通过消息队列通知第一集群从通信存储中间件中获取游戏直播数据,从而可以保证游戏直播数据广播的可靠性和有序性,确保游戏赛事直播的正确性。
对于回合制游戏而言,本公开中的战斗协议数据包括了当前战斗回合的协议流数据和当前战斗回合的快照数据。这样,对于中间加入当前游戏赛事直播的观战客户端而言,第二集群可以把最新回合的快照数据发送给该观战客户端,然后再正常广播之后回合的协议流数据。
在一种示例性的实施方式中,本公开中的游戏赛事直播系统还可以包括游戏本地服务器。观战客户端可以包括登录游戏本地服务器的游戏客户端。换言之,本公开中的游戏赛事直播,可以与传统游戏的流媒体直播不同,而是将游戏赛事直播嵌入在游戏客户端,游戏客户端中的游戏玩家可以边玩游戏边观看其它游戏玩家的游戏比赛。当然,游戏客户端中的游戏玩家也可以只在游戏客户端中观看其它游戏玩家的游戏比赛。换言之,用户可以直接在游戏客户端中选择自己想观看的游戏比赛直播。
其中,观战客户端有主播视角、上帝视角,在回合制游戏中,直播数据中的每条战斗协议持有可见级别,每个观战客户端只能接收小于或等于自己观战权限的协议。游戏本地服务器可以在加入游戏比赛直播的接口中配置每个观战客户端中的观战用户的观战权限。
示例性的,观战客户端也可以包括未登录游戏本地服务器的游戏客户端。当观战客户端为未登录游戏本地服务器的游戏客户端时,可以不对游戏客户端进行身份验证。因为如果观战客户端未登录游戏本地服务器,则其只有观战权限,无法玩游戏,不会对其观战的游戏比赛造成威胁,所以可以不对其进行身份验证。
当观战客户端为登录游戏本地服务器的游戏客户端时,可以对观战客户端中的游戏玩家进行身份校验。这样,可以保证游戏比赛的安全进行。
示例性的,游戏本地服务器可以用于生成与游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌。游戏本地服务器还可以用于将生成的与游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌发送给游戏客户端。然后,第一集群和第二集群可以基于该临时身份令牌对游戏客户端中的游戏玩家进行身份校验。
其中,全服指的是所有的游戏本地服务器。对于一个游戏而言,其可能有多个游戏本地服务器,不同的客户端可以连接在不同的游戏本地服务器。临时身份令牌是和游戏玩家在全服中的唯一标识对应的,这样,可以避免不同游戏本地服务器的游戏玩家由于其在本地服务器的唯一标识相同而导致身份校验错误的情况发生,进一步提升身份校验的准确性。
示例性的,图3示出本公开一示例性实施例中的对游戏玩家进行身份校验的方法的流程示意图。参考图3,该方法可以包括步骤S310至步骤S340。其中:在步骤S310中,所述游戏本地服务器将所述临时身份令牌发送至所述第一集群;在步骤S320中,所述第一集群将接收到的所述临时身份令牌存储至所述通信存储中间件中;在步骤S330中,在所述游戏客户端连接所述第二集群时,所述第二集群获取所述游戏客户端中的游戏玩家的临时身份令牌;在步骤S340中,所述第二集群将获取到的所述临时身份令牌与所述通信存储中间件中存储的临时身份令牌进行匹配,以根据匹配结果确定所述游戏玩家的身份校验结果。
举例而言,当游戏客户端登录游戏本地服务器时,游戏本地服务器可以生成一个与cguid(即游戏客户端中的游戏玩家的全服唯一标识)对应的临时身份令牌,然后游戏本地服务器可以将该临时身份令牌发送至第一集群,然后,第一集群可以将该临时身份令牌存储至通信存储中间件中,以通信存储中间件为Redis为例,第一集群可以将接收到的临时身份令牌保存在Redis的数据库中,同时,在游戏客户端正常登录游戏本地服务器时,游戏本地服务器还可以将生成的临时身份令牌同时发送到游戏客户端。
当游戏客户端中的游戏玩家想要观看其他游戏玩家的游戏比赛时,响应于游戏玩家对游戏赛事的直播观看控件的触发操作,可以将游戏客户端连接到第二集群,游戏客户端可以将游戏客户端中的游戏玩家的临时身份令牌发送给第二集群,这样,第二集群可以获取到游戏客户端中的游戏玩家的临时身份令牌。然后,第二集群可以根据接收到的临时身份令牌,将该临时身份令牌和通信存储中间件中存储的临时身份令牌进行匹配,进而根据匹配结果确定游戏客户端中的游戏玩家的身份校验是否通过。
示例性的,第二集群将获取到的临时身份令牌与通信存储中间件中存储的临时身份令牌进行匹配的具体实施方式可以是:第二集群根据接收到的临时身份令牌,在通信存储中间件中查询是否存在该临时身份令牌,如果存在,则匹配成功,如果不存在,则匹配失败。
在第二集群接收到的临时身份令牌和通信存储中间件中存储的临时身份令牌匹配成功时,游戏客户端中的游戏玩家的身份校验通过;在游戏客户端中的游戏玩家的身份校验通过时,可以将游戏客户端登录到第二集群,这样,游戏客户端可以通过第二集群来观看游戏赛事的直播。
如果游戏客户端是正常登录到游戏本地服务器,那么游戏客户端就可以收到游戏本地服务器发送的临时身份令牌,且其和游戏本地服务器发送给第一集群的临时身份令牌相同,第一集群将该临时身份令牌存储在了通信存储中间件,也就是说,在游戏客户端和游戏本地服务器的连接是安全可靠的情况下,第二集群接收到的游戏客户端发送的临时身份令牌和通信存储中间件中存储的临时身份令牌肯定是可以匹配成功的,游戏客户端中的游戏玩家的身份校验成功,校验成功后,则可以将该游戏客户端登录到第二集群,以使该游戏客户端能够加入到游戏赛事直播系统。如果游戏客户端没有正常登录到游戏本地服务器,则游戏客户端无法接收到游戏本地服务器发送的临时身份令牌,这样,游戏客户端发送给第二集群的临时身份令牌和通信存储中间件中存储的临时身份令牌就无法匹配成功,游戏客户端中的游戏玩家的身份校验随之失败,校验失败,则该游戏客户端无法登录到第二集群,也就无法加入游戏赛事直播系统,观看游戏直播。
在观战客户端包括登录到游戏本地服务器的游戏客户端时,第二集群将接收到的游戏直播数据发送给与其连接的观战客户端,可以包括:所述第二集群将接收到的所述游戏直播数据发送给登录到所述第二集群的观战客户端。
在一种示例性的实施方式中,所述第二集群120还用于接收所述观战客户端发送的弹幕数据,并将所述弹幕数据广播给与所述第二集群连接的观战客户端。这样,可以通过第二集群直接将与其连接的任一观战客户端发送的弹幕数据广播给所有的观战客户端,从而实现游戏赛事直播中的弹幕数据的广播。
在另一种示例性的实施方式中,在观战客户端包括登录游戏本地服务器的游戏客户端时,游戏本地服务器可以用于对观战客户端发送的弹幕请求进行验证,并在所述弹幕请求验证成功后,将所述弹幕请求发送至所述第二集群,以使与所述第二集群连接的观战客户端能够显示所述弹幕请求中的弹幕数据,从而实现弹幕广播功能。
其中,所述游戏本地服务器用于对所述观战客户端发送的弹幕请求进行验证,包括:所述游戏本地服务器用于验证所述观战客户端的弹幕发送权限。在验证通过后,可以实现游戏赛事直播的弹幕发送。
基于此,图4示出本公开一示例性实施例中的实现游戏赛事直播的弹幕发送的方法的流程示意图。参考图4,该方法可以包括步骤S410至步骤S430。其中:
在步骤S410中,所述游戏本地服务器将所述弹幕请求发送至所述第一集群。
举例而言,游戏客户端发送弹幕请求到游戏本地服务器,弹幕请求中包括游戏客户端正在观看的游戏赛事直播的直播场次标识和游戏客户端中的游戏玩家的玩家本地服标识以及弹幕内容。
游戏本地服务器可以从数据库中查询该游戏玩家对应的玩家本地服标识对应的弹幕发送权限,如果确定该游戏玩家具有弹幕发送权限,则弹幕请求验证通过,如果确定该游戏玩家不具有弹幕发送权限,则弹幕请求验证失败。如果弹幕请求验证通过,则游戏本地服务器可以将弹幕请求发送到第一集群。
接下来,在步骤S420中,所述第一集群基于所述通信存储中间件将所述弹幕请求发送至所述第二集群中的各个节点。
如前所述,第二集群中可以包括多个节点,每个节点用于单独管理与其连接的观战客户端。基于此,游戏本地服务器将弹幕请求发送到第一集群后,第一集群可以基于通信存储中间件将弹幕请求发送至第二集群中的各个节点。
在一种示例性的实施方式中,通信存储中间件可以包括远程字典服务集群。示例性的,第一集群基于通信存储中间件将弹幕请求发送至第二集群中的各个节点,可以包括:第一集群将弹幕请求保存在远程字典服务集群;远程字典服务集群基于发布和订阅机制将所述弹幕请求发送至所述第二集群中的各个节点。
举例而言,在游戏本地服务器将弹幕请求发送到第一集群后,第一集群可以将弹幕请求保存在Redis数据库中,Redis通过其pub/sub(发布/订阅)机制将当前弹幕请求推送到第二集群中的各个节点。
接下来,在步骤S430中,所述第二集群中的各个节点将所述弹幕请求中的弹幕数据广播至与其连接的观战客户端,以使与其连接的观战客户端能够显示所述弹幕数据。
举例而言,第二集群中的各个节点可以将弹幕请求中的弹幕数据,即弹幕内容,广播给加入到该节点的观战客户端,从而实现游戏赛事直播系统中的弹幕的发送与广播。
因为弹幕发送的可到达性要求较低,所以与游戏直播数据通过消息队列传输的方式不同,弹幕数据可以直接用Redis中的pub/sub来进行推送。
通过上述的步骤S410至步骤S430,可以在弹幕请求验证通过后,基于第一集群、通信存储中间件、以及第二集群实现游戏赛事直播中的弹幕的发送,提高游戏赛事直播的互动性。其中,弹幕可以理解为观战客户端在观看游戏赛事直播的视频时弹出的评论性字幕。
在一种示例性的实施方式中,第一集群还用于将所述游戏赛事的游戏直播数据保存在数据库中。其中,数据库可以包括mongo数据库,即基于分布式文件存储的数据库。基于此,游戏赛事直播系统基于该数据库和第二集群可以实现游戏赛事的直播回放。
示例性的,图5示出本公开一示例性实施例中的对游戏赛事直播进行回放的方法的流程示意图。参考图5,该方法可以包括步骤S510至步骤S520。其中:
在步骤S510中,第二集群响应观战客户端对所述游戏赛事的回放请求,从所述数据库中获取所述游戏赛事的游戏直播数据。
在步骤S520中,第二集群将所述游戏直播数据发送至所述观战客户端,以使所述观战客户端能够基于所述游戏直播数据对所述游戏赛事进行回放。
举例而言,对于游戏直播数据都保存在通信存储中间件中,在直播结束后,第一集群可以把通信存储中间件中的游戏直播数据保存在mongo数据库中。当用户想要在游戏客户端观看某个游戏赛事的回放时,可以对该游戏赛事对应的直播回放控件进行触发,这样,用户所在的观战客户端可以连接到第二集群,然后第二集群可以根据用户的回放观看请求中的直播场次标识,从mongo数据库中获取该直播场次标识对应的游戏直播数据,然后将其发送给用户所在的观战客户端,这样,可以使得用户能够观看已结束的游戏赛事直播的录像。
本公开的游戏赛事直播系统,可以满足游戏赛事直播业务的高并发、高请求的需求,提高游戏赛事直播系统能够承载的观战客户端的数量。同时,可以降低游戏本地服务器的额外计算开销,保证本地服务器的性能。
进一步的,由于集群中的节点可以横向扩展,所以可以提高游戏赛事直播系统的伸缩性,使其可以方便的满足不同数量级的直播需求。
与此同时,通过本公开的游戏赛事直播系统,可以对观看直播的游戏玩家进行身份校验,提高游戏赛事直播的安全性和可靠性。
此外,本公开的游戏赛事直播系统还实现了弹幕发送功能,提高游戏赛事直播的互动性。更进一步的,本公开的游戏赛事直播系统可以高效简单的同时实现游戏直播和游戏直播的录像功能。
接下来,图6示出本公开一示例性实施例中的游戏赛事直播方法的流程示意图。参考图6,该方法可以包括步骤S610至步骤S630。其中:
在步骤S610中,面向服务端的第一集群接收游戏比赛服务器发送的游戏赛事直播数据;
在步骤S620中,所述第一集群通过通信存储中间件将所述游戏赛事直播数据发送给面向客户端的第二集群;
在步骤S630中,所述第二集群将接收到的所述游戏赛事直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。
在本公开的一些示例性实施例中,基于前述实施例,所述第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群,包括:所述第一集群通过所述通信存储中间件中的消息队列将所述游戏直播数据发送给所述第二集群。
在本公开的一些示例性实施例中,基于前述实施例,所述第二集群中包括多个节点;所述第一集群通过所述通信存储中间件中的消息队列将所述游戏直播数据发送给所述第二集群,包括:所述第一集群在所述通信存储中间件中建立与所述游戏赛事对应的目标消息队列,所述目标消息队列的数量基于所述第二集群中的节点的数量确定;所述第一集群将接收到的所述游戏比赛服务器发送的所述游戏赛事的当前游戏直播数据保存在所述通信存储中间件中,并向所述目标消息队列发送所述当前游戏直播数据到来的消息;所述第二集群中的节点在监听到与其关联的目标消息队列中的所述当前游戏直播数据到来的消息时,从所述通信存储中间件中获取所述当前游戏直播数据。
在本公开的一些示例性实施例中,基于前述实施例,所述第二集群中的每个所述节点用于单独管理与其连接的观战客户端;所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端:所述第二集群中的节点将其从所述通信存储中间件中获取到的所述当前游戏直播数据广播给与其连接的所述观战客户端。
在本公开的一些示例性实施例中,基于前述实施例,所述观战客户端包括登录游戏本地服务器的游戏客户端。
在本公开的一些示例性实施例中,基于前述实施例,所述游戏本地服务器用于生成与所述游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌;所述第一集群和所述第二集群基于所述临时身份令牌对所述游戏客户端的游戏玩家进行身份校验。
在本公开的一些示例性实施例中,基于前述实施例,所述游戏本地服务器还用于将生成的与所述游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌发送至所述游戏客户端;所述第一集群和所述第二集群基于所述临时身份令牌对所述游戏客户端的游戏玩家进行身份校验,包括:所述游戏本地服务器将所述临时身份令牌发送至所述第一集群;所述第一集群将接收到的所述临时身份令牌存储至所述通信存储中间件中;在所述游戏客户端连接所述第二集群时,所述第二集群获取所述游戏客户端中的游戏玩家的临时身份令牌;所述第二集群将获取到的所述临时身份令牌与所述通信存储中间件中存储的临时身份令牌进行匹配,以根据匹配结果确定所述游戏玩家的身份校验结果。
在本公开的一些示例性实施例中,基于前述实施例,所述根据匹配结果确定所述游戏玩家的身份校验结果,包括:在匹配成功时,所述游戏玩家的身份校验通过;在所述游戏玩家的身份校验通过时,将所述游戏客户端登录到所述第二集群。
在本公开的一些示例性实施例中,基于前述实施例,所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,包括:所述第二集群将接收到的所述游戏直播数据发送给登录到所述第二集群的观战客户端。
在本公开的一些示例性实施例中,基于前述实施例,所述第二集群还用于接收所述观战客户端发送的弹幕数据,并将所述弹幕数据广播给与所述第二集群连接的观战客户端。
在本公开的一些示例性实施例中,基于前述实施例,所述游戏本地服务器用于对所述观战客户端发送的弹幕请求行验证,并在所述弹幕请求验证成功后,将所述弹幕请求发送至所述第二集群,以使与所述第二集群连接的观战客户端能够显示所述弹幕请求中的弹幕数据。
在本公开的一些示例性实施例中,基于前述实施例,所述游戏本地服务器用于对所述观战客户端发送的弹幕请求进行验证,包括:所述游戏本地服务器用于验证所述观战客户端的弹幕发送权限。
在本公开的一些示例性实施例中,基于前述实施例,所述在所述弹幕请求验证成功后,将所述弹幕请求发送至所述第二集群,以使与所述第二集群连接的观战客户端能够显示所述弹幕请求中的弹幕数据,包括:所述游戏本地服务器将所述弹幕请求发送至所述第一集群;所述第一集群基于所述通信存储中间件将所述弹幕请求发送至所述第二集群中的各个节点;所述第二集群中的各个节点将所述弹幕请求中的弹幕数据广播至与其连接的观战客户端,以使与其连接的观战客户端能够显示所述弹幕数据。
在本公开的一些示例性实施例中,基于前述实施例,所述通信存储中间件包括远程字典服务集群;所述第一集群基于所述通信存储中间件将所述弹幕请求发送至所述第二集群中的各个节点,包括:所述第一集群将所述弹幕请求保存在所述远程字典服务集群;所述远程字典服务集群基于发布和订阅机制将所述弹幕请求发送至所述第二集群中的各个节点。
在本公开的一些示例性实施例中,基于前述实施例,所述第一集群可以将所述游戏赛事的游戏直播数据保存在数据库中;所述第二集群可以响应所述观战客户端对所述游戏赛事的回放请求,从所述数据库中获取所述游戏赛事的游戏直播数据,并将所述游戏直播数据发送至所述观战客户端,以使所述观战客户端能够对所述游戏赛事进行回放。
上述的游戏赛事直播方法中的具体实施细节已经在对应的游戏赛事直播系统中进行了阐述,此处不再进行赘述。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
进一步的,图7示出本公开一示例性实施例中的游戏赛事直播系统的架构图。参考图7,该游戏赛事直播系统可以包括游戏客户端710、游戏本地服务器720、直播集群730、游戏比赛服务器740。
基于图7所示的直播系统的架构图,实现的直播流程可以包括以下步骤:(1)游戏客户端710登录游戏本地服务器720;(2)游戏客户端710连接直播集群730;(3)游戏客户端与游戏本地服务器的连接是安全可靠的,可以基于此实现对登录直播集群730的游戏客户端中的游戏玩家进行身份校验;(4)游戏比赛服务器740开启游戏赛事直播场次,并通知直播集群730;(5)游戏客户端710从直播集群获取当前的游戏比赛直播,并选择自己感兴趣的游戏比赛直播请求加入;(6)游戏比赛服务器740把游戏直播数据发送给直播集群740;(7)直播集群740将游戏直播数据广播给当前观看的游戏客户端710。
下面,结合图8示出的示例性实施例中的直播集群的架构图,对基于图7所示的游戏赛事直播系统实现游戏赛事直播的流程进行进一步的说明。参考图8,游戏直播集群可以包括面向服务端的GO1集群731、面向客户端的GO2集群732、Redis集群733、负载均衡集群734。
其中,负载均衡集群734作为一个面向客户端的前端负载均衡,负载分配游戏客户端710与GO2集群732的连接。
GO2集群732面向客户端,与游戏客户端710直连,二者之间基于socket的pb协议传输数据,GO2集群732可以包括多个节点,并且可以根据业务需求横向扩展节点数,以提高游戏赛事直播系统的容量。GO2集群中的每个节点单独管理其连接的客户端的会话控制,即session。
GO1集群731面向服务端,可以类似于一个简易的WEB服务器,提供的功能可以包括:(1)游戏本地服务器中的游戏客户端加入游戏赛事直播系统;(2)接收游戏比赛服务器传输的游戏直播数据;(3)接收游戏本地服务器的观战用户发送的弹幕数据。
GO1集群731与GO2集群732基于Redis集群,有3种通信模型:(1)在游戏本地服务器的用户登录后,与直播集群连接时的身份校验;(2)基于消息队列的游戏直播数据推送;(3)弹幕数据的PUB/SUB广播。
下面,对上述的3种通信模型进行进一步的说明。
(1)在游戏本地服务器的用户登录后,与直播集群连接时的身份校验的流程可以包括以下步骤:客户端登录游戏本地服务器;游戏本地服务器生成一个与客户端中的用户的全服唯一标识对应的临时身份令牌;游戏本地服务器把临时身份令牌发送给GO1集群,GO集群把该临时身份令牌保存在Redis内存数据库中;游戏本地服务器把临时身份令牌发送给客户端;客户端连接GO2集群,并把临时身份令牌发送给GO2集群以进行校验;GO2集群根据接收到的临时身份令牌,在Redis内存数据库中查询是否存在该临时身份令牌,以进行身份校验。如果存在,则校验通过,如果不存在,则校验失败。
因为客户端与游戏本地服务器的连接是安全的,所以,在此基础上进行的临时身份令牌的校验也能确保安全性。
(2))基于消息队列的游戏直播数据推送的流程可以包括以下步骤:游戏比赛服务器开启一场直播比赛,并为该直播比赛生成一个全局唯一编号,如ID-A;游戏比赛服务器通知GO1集群,编号ID-A的游戏比赛开始直播;GO1集群接收到该通知后,可以在redis集群中建立多条队列,每个队列的命名规则可以为:直播ID+GO2节点名。例如,如果游戏比赛服务器中当前正有M场正在进行的直播,并且GO2集群有N个节点,那么redis集群会存在M*N个消息队列;GO1集群通知GO2集群,开始监听编号为ID-A的队列,每个GO2节点都会监听自己对应的消息队列中的消息;游戏比赛服务器切入比赛后,会把当前游戏直播数据发送给GO1集群。以回合制游戏为例,游戏比赛服务器进入比赛后,会把每回合的战斗协议数据发送到GO1集群,协议数据分为两部分,即当前战斗回合的协议流数据A和当前战斗回合的快照数据B;GO1集群会把游戏直播数据保存在Redis中,并把新游戏直播数据的到来的消息通知给GO2集群。如把协议流数据A和快照数据B保存在redis数据库中,并把新回合数据到来的消息通知GO2集群;GO2集群收到新游戏数据到来的消息后,去redis数据库中取出游戏直播数据,并广播给自己节点上加入该游戏比赛直播的客户端;如从Redis数据库中取出协议流数据A,并广播给自己节点上加入该直播的客户端。因为redis的pub/sub是一种不可靠的广播机制,但游戏直播数据,如战斗协议流数据必须要有序,而且丢掉任何一回合的数据都会导致客户端播放错误。所以游戏直播数据是先保持在redis中,然后再通过Redis中的消息队列通知GO2集群中的节点来取,这样能确保战斗协议广播可靠和有序性。
以回合制游戏为例,对于中间加入直播的客户端而言,GO2集群可以把最新回合的快照数据发送给该客户端,然后再正常广播之后回合的战斗协议。
(3)弹幕数据的PUB/SUB广播的流程实现步骤可以包括:客户端发送弹幕请求到游戏本地服务器,弹幕请求中包含直播场次的编号和弹幕内容以及客户端中的用户标识;游戏本地服务器根据用户标识验证该用户是否具有发送弹幕的权限;如果有,则游戏本地服务器可以把弹幕请求发送到GO1集群;4)GO1集群通过redis的pub/sub将弹幕请求推送到GO2集群中的每个节点;GO2集群中的每个节点将弹幕请求中的弹幕内容广播该该节点中加入该直播场次的客户端。
此外,图7所示的游戏赛事直播系统还可以实现直播录像存取功能。具体的,以回合制游戏为例,由于战斗快照和实时协议数据在Redis中都有保存,在直播结束后,GO1集群会把Redis中的直播数据保存在mongo数据库中。客户端可以通过连接GO2集群请求对已结束的游戏赛事进行回放,GO2集群可以从mongo数据库中获取游戏赛事的录像数据,然后发送给客户端,然后客户端可以直接播放该游戏赛事的录像数据,从而使得客户端中的用户能够观看已结束的直播录像。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图9所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本公开的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030以及显示单元1040。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1010可以执行如图2至图6中所示的各个步骤。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备800还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (16)

1.一种游戏赛事直播系统,其特征在于,包括:面向服务端的第一集群、面向客户端的第二集群、通信存储中间件;
所述面向服务器的第一集群,用于接收游戏比赛服务器发送的游戏赛事的游戏直播数据;
所述面向客户端的第二集群,用于与观战客户端进行连接;
所述第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群;
所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。
2.根据权利要求1所述的游戏赛事直播系统,其特征在于,所述第一集群通过所述通信存储中间件将所述游戏直播数据发送给所述第二集群,包括:
所述第一集群通过所述通信存储中间件中的消息队列将所述游戏直播数据发送给所述第二集群。
3.根据权利要求2所述的游戏赛事直播系统,其特征在于,所述第二集群中包括多个节点;
所述第一集群通过所述通信存储中间件中的消息队列将所述游戏直播数据发送给所述第二集群,包括:
所述第一集群在所述通信存储中间件中建立与所述游戏赛事对应的目标消息队列,所述目标消息队列的数量基于所述第二集群中的节点的数量确定;
所述第一集群将接收到的所述游戏比赛服务器发送的所述游戏赛事的当前游戏直播数据保存在所述通信存储中间件中,并向所述目标消息队列发送所述当前游戏直播数据到来的消息;
所述第二集群中的节点在监听到与其关联的目标消息队列中的所述当前游戏直播数据到来的消息时,从所述通信存储中间件中获取所述当前游戏直播数据。
4.根据权利要求3所述的游戏赛事直播系统,其特征在于,所述第二集群中的每个所述节点用于单独管理与其连接的观战客户端;
所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端:
所述第二集群中的节点将其从所述通信存储中间件中获取到的所述当前游戏直播数据广播给与其连接的所述观战客户端。
5.根据权利要求1所述的游戏赛事直播系统,其特征在于,所述游戏赛事直播系统还包括游戏本地服务器;所述观战客户端包括登录所述游戏本地服务器的游戏客户端。
6.根据权利要求5所述的游戏赛事直播系统,其特征在于,所述游戏本地服务器用于生成与所述游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌;
所述第一集群和所述第二集群基于所述临时身份令牌对所述游戏客户端的游戏玩家进行身份校验。
7.根据权利要求6所述的游戏赛事直播系统,其特征在于,所述游戏本地服务器还用于将生成的与所述游戏客户端中的游戏玩家的全服唯一标识对应的临时身份令牌发送至所述游戏客户端;
所述第一集群和所述第二集群基于所述临时身份令牌对所述游戏客户端的游戏玩家进行身份校验,包括:
所述游戏本地服务器将所述临时身份令牌发送至所述第一集群;
所述第一集群将接收到的所述临时身份令牌存储至所述通信存储中间件中;
在所述游戏客户端连接所述第二集群时,所述第二集群获取所述游戏客户端中的游戏玩家的临时身份令牌;
所述第二集群将获取到的所述临时身份令牌与所述通信存储中间件中存储的临时身份令牌进行匹配,以根据匹配结果确定所述游戏玩家的身份校验结果。
8.根据权利要求7所述的游戏赛事直播系统,其特征在于,所述根据匹配结果确定所述游戏玩家的身份校验结果,包括:
在匹配成功时,所述游戏玩家的身份校验通过;
在所述游戏玩家的身份校验通过时,所述游戏客户端登录到所述第二集群。
9.根据权利要求8所述的游戏赛事直播系统,其特征在于,所述第二集群将接收到的所述游戏直播数据发送给与其连接的观战客户端,包括:
所述第二集群将接收到的所述游戏直播数据发送给登录到所述第二集群的观战客户端。
10.根据权利要求1所述的游戏赛事直播系统,其特征在于,所述第二集群还用于接收所述观战客户端发送的弹幕数据,并将所述弹幕数据广播给与所述第二集群连接的观战客户端。
11.根据权利要求5所述的游戏赛事直播系统,其特征在于,所述游戏本地服务器用于对所述观战客户端发送的弹幕请求行验证,并在所述弹幕请求验证成功后,将所述弹幕请求发送至所述第二集群,以使与所述第二集群连接的观战客户端能够显示所述弹幕请求中的弹幕数据。
12.根据权利要求11所述的游戏赛事直播系统,其特征在于,所述游戏本地服务器用于对所述观战客户端发送的弹幕请求进行验证,包括:
所述游戏本地服务器用于验证所述观战客户端的弹幕发送权限。
13.根据权利要求11所述的游戏赛事直播系统,其特征在于,所述第二集群中包括多个节点,每个节点用于单独管理与其连接的观战客户端;
所述在所述弹幕请求验证成功后,将所述弹幕请求发送至所述第二集群,以使与所述第二集群连接的观战客户端能够显示所述弹幕请求中的弹幕数据,包括:
所述游戏本地服务器将所述弹幕请求发送至所述第一集群;
所述第一集群基于所述通信存储中间件将所述弹幕请求发送至所述第二集群中的各个节点;
所述第二集群中的各个节点将所述弹幕请求中的弹幕数据广播至与其连接的观战客户端,以使与其连接的观战客户端能够显示所述弹幕数据。
14.根据权利要求13所述的游戏赛事直播系统,其特征在于,所述通信存储中间件包括远程字典服务集群;
所述第一集群基于所述通信存储中间件将所述弹幕请求发送至所述第二集群中的各个节点,包括:
所述第一集群将所述弹幕请求保存在所述远程字典服务集群;
所述远程字典服务集群基于发布和订阅机制将所述弹幕请求发送至所述第二集群中的各个节点。
15.根据权利要求1至14中任一项所述的游戏赛事直播系统,其特征在于,所述第一集群还用于将所述游戏赛事的游戏直播数据保存在数据库中;
所述第二集群还用于响应所述观战客户端对所述游戏赛事的回放请求,从所述数据库中获取所述游戏赛事的游戏直播数据,并将所述游戏直播数据发送至所述观战客户端,以使所述观战客户端能够对所述游戏赛事进行回放。
16.一种游戏赛事直播方法,其特征在于,包括:
面向服务端的第一集群接收游戏比赛服务器发送的游戏赛事直播数据;
所述第一集群通过通信存储中间件将所述游戏赛事直播数据发送给面向客户端的第二集群;
所述第二集群将接收到的所述游戏赛事直播数据发送给与其连接的观战客户端,以实现对所述游戏赛事的直播。
CN202210204642.8A 2022-03-03 2022-03-03 游戏赛事直播系统、游戏赛事直播方法 Pending CN114615512A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210204642.8A CN114615512A (zh) 2022-03-03 2022-03-03 游戏赛事直播系统、游戏赛事直播方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210204642.8A CN114615512A (zh) 2022-03-03 2022-03-03 游戏赛事直播系统、游戏赛事直播方法

Publications (1)

Publication Number Publication Date
CN114615512A true CN114615512A (zh) 2022-06-10

Family

ID=81860454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210204642.8A Pending CN114615512A (zh) 2022-03-03 2022-03-03 游戏赛事直播系统、游戏赛事直播方法

Country Status (1)

Country Link
CN (1) CN114615512A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979697A (zh) * 2022-07-29 2022-08-30 北京云中融信网络科技有限公司 一种用于解耦信令服务器和音视频服务器的系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182321A (zh) * 2019-12-31 2020-05-19 广州博冠信息科技有限公司 处理信息的方法、装置和系统
CN112351302A (zh) * 2020-11-24 2021-02-09 网易(杭州)网络有限公司 基于云游戏的直播交互方法、装置及存储介质
CN113423018A (zh) * 2021-08-24 2021-09-21 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质
US20210362048A1 (en) * 2016-08-10 2021-11-25 Amazon Technologies, Inc. Streaming video game statistics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210362048A1 (en) * 2016-08-10 2021-11-25 Amazon Technologies, Inc. Streaming video game statistics
CN111182321A (zh) * 2019-12-31 2020-05-19 广州博冠信息科技有限公司 处理信息的方法、装置和系统
CN112351302A (zh) * 2020-11-24 2021-02-09 网易(杭州)网络有限公司 基于云游戏的直播交互方法、装置及存储介质
CN113423018A (zh) * 2021-08-24 2021-09-21 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979697A (zh) * 2022-07-29 2022-08-30 北京云中融信网络科技有限公司 一种用于解耦信令服务器和音视频服务器的系统和方法
CN114979697B (zh) * 2022-07-29 2022-09-30 北京云中融信网络科技有限公司 一种用于解耦信令服务器和音视频服务器的系统和方法

Similar Documents

Publication Publication Date Title
WO2022143182A1 (zh) 用于多用户交互的视频信号播放方法、装置及设备
CN109107167B (zh) 游戏中的交互控制方法、电子设备及存储介质
US9621958B2 (en) Deferred, on-demand loading of user presence within a real-time collaborative service
CN112235594B (zh) 直播连麦的方法及装置、计算机可读介质、电子设备
CN110830735A (zh) 一种视频生成方法、装置、计算机设备和存储介质
CN111643889A (zh) 一种游戏控制方法、装置、存储介质和电子设备
TW201041400A (en) Temporary decoder apparatus and method
WO2022095738A1 (zh) 直播数据处理方法、装置、电子设备及存储介质
US11611793B2 (en) Expiring synchronized supplemental content in time-shifted media
CN113766340B (zh) 连麦直播下的舞曲互动方法、系统、装置及计算机设备
CN112316441A (zh) 游戏直播数据处理方法、装置、电子设备及可读介质
CN110351569B (zh) 一种直播内容处理方法、装置、设备及介质
WO2017181601A1 (zh) 直播流的处理方法、装置、电子设备及系统
US20230051868A1 (en) Livestreaming Interaction Method And Apparatus, Electronic Device, And Computer Readable Storage Medium
CN112929716A (zh) 一种云应用直播互动的方法、装置及系统
CN112235593B (zh) 直播处理方法及装置、电子设备和计算机可读存储介质
WO2022095740A1 (zh) 基于直播的数据处理方法、装置、电子设备和可读介质
CN114615512A (zh) 游戏赛事直播系统、游戏赛事直播方法
US20220021715A1 (en) Live streaming method and apparatus, device and computer readable storage medium
CN112055227B (zh) 云游戏交互方法、系统、装置、存储介质与电子设备
CN117221615A (zh) 直播互动方法、装置、设备及存储介质
CN115243066B (zh) 信息的推送方法、装置、电子设备及计算机可读介质
WO2021159799A1 (zh) 一种直播方法、装置、设备及计算机可读存储介质
CN114302254A (zh) 直播视频转码切片的方法及装置、存储介质及电子设备
WO2011144105A2 (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