CN113132745B - 直播服务***、方法、服务器 - Google Patents
直播服务***、方法、服务器 Download PDFInfo
- Publication number
- CN113132745B CN113132745B CN202110351910.4A CN202110351910A CN113132745B CN 113132745 B CN113132745 B CN 113132745B CN 202110351910 A CN202110351910 A CN 202110351910A CN 113132745 B CN113132745 B CN 113132745B
- Authority
- CN
- China
- Prior art keywords
- service
- module
- live broadcast
- user
- user side
- 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
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/26606—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种直播服务***、方法、服务器。该***中,登陆模块接收各个用户端发送的登陆请求,基于登陆请求生成并存储各个用户端对应的校验信息,反馈给各个用户端;网关模块创建与符合直播间登陆条件的用户端的链接通道,对通过链接通道接收的进群协议消息进行校验,通过链接通道接收业务协议消息;登陆模块通过校验信息对业务协议消息进行校验;网关模块通过TCP链接将校验通过的业务协议消息传输给业务逻辑处理模块;业务逻辑处理模块对业务协议消息中业务数据进行业务逻辑处理,存储至消息中间件;网关模块将消息中间件中存储的业务数据异步广播至直播间;监控模块通过时序数据库可视化监控直播间运行情况。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种直播服务***、方法、服务器。
背景技术
随着互联网技术的发展,网络直播正作为一个新的技术领域进入日常生活。
直播业务中,用户进入直播间,可以观看到直播间中提供的来自主播端的直播视频。同时,还可以选取直播间相关功能,如聊天、送礼物、点赞等,实现与主播或其他用户的互动。
目前,直播业务架构的体量庞大,结构复杂,使用繁琐,往往难以针对不同直播业务的需求进行定制化调整,导致架构可用性较差。因此,现有直播业务框架并不适用于搭建中小型直播业务。
发明内容
本发明实施例提供一种直播服务***、方法、装置、设备,用以简化直播服务架构,提升直播服务的可用性。
第一方面,本发明实施例提供一种直播服务***,该直播服务***包括登陆模块、网关模块、业务逻辑处理模块、监控模块,其中
登陆模块,用于接收各个用户端发送的登陆请求;基于各个用户端发送的登陆请求,生成并存储各个用户端对应的校验信息;将各个用户端对应的校验信息反馈给各个用户端;
网关模块,用于创建与符合直播间登陆条件的用户端的双向通信websocket链接通道;通过websocket链接通道接收来自各个用户端的进群协议消息,并对进群协议消息进行校验,进群协议消息包括各个用户端对应的校验信息;通过websocket链接通道接收来自各个用户端的业务协议消息,并触发登陆模块对业务协议消息进行校验,其中业务协议消息包括业务数据以及用户端对应的校验信息;
登陆模块,还用于通过存储的各个用户端对应的校验信息,对业务协议消息进行校验;
网关模块,还用于通过TCP链接将校验通过的业务协议消息传输给业务逻辑处理模块;
业务逻辑处理模块,用于对业务协议消息中业务数据进行业务逻辑处理;将处理后的业务数据存储至消息中间件;
网关模块,还用于将消息中间件中存储的业务数据异步广播至直播间;
监控模块,用于通过时序数据库对网关模块进行监测,以可视化监控直播间运行情况。
第二方面,本发明实施例提供一种直播方法,该直播方法适用于直播服务***,该***包括登陆模块、网关模块、业务逻辑处理模块、监控模块;该直播方法包括:
登陆模块接收各个用户端发送的登陆请求;
登陆模块基于各个用户端发送的登陆请求,生成并存储各个用户端对应的校验信息;
登陆模块将各个用户端对应的校验信息反馈给各个用户端;
网关模块创建与符合直播间登陆条件的用户端的双向通信websocket链接通道;
网关模块通过websocket链接通道接收来自各个用户端的进群协议消息,并对进群协议消息进行校验,进群协议消息包括各个用户端对应的校验信息;
网关模块通过websocket链接通道接收来自各个用户端的业务协议消息,并触发登陆模块对业务协议消息进行校验,其中业务协议消息包括业务数据以及各个用户端对应的校验信息;
登陆模块通过存储的各个用户端对应的校验信息,对业务协议消息进行校验;
网关模块通过TCP链接将校验通过的业务协议消息传输给业务逻辑处理模块;
业务逻辑处理模块对业务协议消息中业务数据进行业务逻辑处理;
业务逻辑处理模块将处理后的业务数据存储至消息中间件;
网关模块将消息中间件中存储的业务数据异步广播至直播间;
监控模块采用时序数据库对网关模块进行监测,以可视化监控直播间运行情况。
第三方面,本发明实施例提供一种服务器,其中包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现第一方面的直播服务***中的功能。
本发明实施例提供了一种存储介质,所述存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现第一方面的直播服务***中的功能。
在本发明实施例提供的直播服务方案中,登陆模块接收各个用户端发送的登陆请求,基于各个用户端发送的登陆请求,生成并存储各个用户端对应的校验信息,将各个用户端对应的校验信息反馈给各个用户端,从而,使得各个用户端能够基于校验信息实现直播服务。网关模块用于创建与符合直播间登陆条件的用户端的websocket链接通道,通过websocket链接通道接收来自各个用户端的进群协议消息,并对进群协议消息进行校验。进而,网关模块还用于通过websocket链接通道接收来自各个用户端的业务协议消息,并触发登陆模块对业务协议消息进行校验,登陆模块通过存储的各个用户端对应的校验信息,对该业务协议消息进行校验。进而,网关模块还用于通过TCP链接将校验通过的业务协议消息传输给业务逻辑处理模块,将消息中间件中存储的业务数据异步广播至直播间。业务逻辑处理模块用于对业务协议消息中业务数据进行业务逻辑处理,并存储至消息中间件。监控模块通过时序数据库对网关模块进行监测,从而实现可视化监控直播间运行情况。
为了实现适用于搭建中小型直播业务的直播服务架构,构建出由登陆模块、网关模块、业务逻辑处理模块、监控模块相配合得到的直播服务***。进而,通过该直播服务***能够为用户端提供直播服务,大大简化直播服务架构,提高直播服务架构的搭建效率,提升直播服务的可用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种直播服务场景的示意图;
图2为本发明实施例提供的一种直播服务***的结构示意图;
图3为本发明实施例提供的一种直播方法的流程示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种直播服务场景的示意图,如图1所示,该直播服务场景包括:两个用户端(用户端A和用户端B)以及用于为这两个用户端提供直播服务的直播服务***。在图1中,假设用户端搭载于移动端设备中。比如,用户端A可以是手机应用,搭载在手机上。再比如,用户端B可以是电脑软件,搭载在电脑上。可选地,该直播服务***部署在服务端设备上。
实际上,直播服务***所部署的服务端设备可能是由一台或多台设备构成的。上述直播服务***可以实现为:业务实例、虚拟机、硬件设备。比如,该直播服务***可以实现为部署在云节点中的一个或多个设备上的一种业务实例。简单来说,该直播服务***可以理解为是部署在云节点上的一种软件,用于为各用户端提供直播服务。或者,该直播服务***也可以实现为部署在云节点中的一个或多个设备上的一种虚拟机。该虚拟机中安装有用于管理各用户端的应用软件。或者,该直播服务***还可以实现为由众多相同或不同类型的硬件设备构成的服务端,设置一个或多个硬件设备用于为各用户端提供直播服务。
实际应用中,从物理空间角度来说,图1中示意的用户端A、用户端B、直播服务***可能位于不同的位置区域,比如位于不同的城市。例如,假设用户端A位于杭州,用户端B位于上海,那么,直播服务***所部署的服务端设备可以位于杭州、上海或其他城市。
结合图1来说,本发明实施例提供的直播服务方案的目的在于:用户打开用户端A后,直播服务***用于通过用户端A为用户提供直播服务,比如,进入直播间观看直播视频,或者提供相关的直播功能,如送礼、聊天等。
为达到上述目的,本发明实施例提供的直播服务方案的核心思想是:为了实现适用于搭建中小型直播业务的直播服务架构,构建出由登陆模块、网关模块、业务逻辑处理模块、监控模块相配合得到的直播服务***。进而,通过该直播服务***能够为用户端提供直播服务,大大简化直播服务架构,提高直播服务架构的搭建效率,提升直播服务的可用性。
下面结合以下实施例对本发明提供的直播服务方案的执行过程进行说明。
图2为本发明实施例提供的一种直播服务***的示意图。如图2所示,该直播服务***包括登陆模块、网关模块、业务逻辑处理模块、监控模块。在图2中,通过上述几个模块的配合,该直播服务***能够为用户端提供直播服务,如视频直播、音频直播、聊天、送礼等。
其中,直播服务***可以设置于云端服务器中,在实现形式上,可以作为一个或多个服务设备,也可以作为一应用安装于云端(例如直播服务运营方的服务器、服务器集群等)上,或者也可以开发为网站。
用户端是指位于用户侧的客户端,在实现形式上,例如用户端可以作为一应用安装于用户侧的终端设备上实现,或者作为一具有交互功能的网页实现,再或者作为即时通信应用中的小程序。
在实现形式上,直播服务***和用户端相互适应。即,直播服务***作为安装于云服务平台的应用,则用户端作为与该应用建立通信连接的客户端;或实现直播服务***作为网站实现,则用户端作为网页实现;再或实现直播服务***作为云服务平台实现,则用户端作为即时通信应用中的小程序实现。
例如,想要观看直播的用户可以打开用户端进入直播间,此情况下,用户端可以作为安装于用户手机中的应用。或者,用户也可以通过其他用户分享的直播链接进入直播间,此情况下,用户端作为该直播链接对应的某一类型终端网页实现,或者作为即时通信应用中由该直播链接可触发的小程序实现。
如图2所示,直播服务***的一种可选实现结构包括:登陆模块、网关模块、业务逻辑处理模块、监控模块。
本发明实施例中,为便于适应各种规模的直播服务场景,直播服务中,上述各个模块均可独立实现,且与其他模块调用。这里的调用可以理解为,某一模块可以连接另一类型的多个模块,并为其连接的多个模块提供相应服务。比如,多个网关模块可以调用同一登陆模块,以获取该登陆模块提供的校验服务。再比如,多个网关模块可以调用同一业务逻辑处理模块,以获取该业务逻辑处理模块提供的业务处理服务。基于上述特性,本发明实施例提供的直播服务***中,无需修改程序代码,即可通过增加模块、并直接调用的形式来调整直播服务架构的适用范围,实现集群式水平拓展,以便达到快捷灵活拓展直播服务***的目的。实际应用中,上述模块可以设置在同一设备或不同设备中,也可以是设置在虚拟设备中,例如云端服务器中的服务实例。
下面结合具体示例,分别针对直播服务***的各个组成部分以及具体工作流程进行说明:
首先,介绍登陆模块,该登陆模块主要用于为各个用户端生成校验信息。该登陆模块可以实现为云节点中的业务实例,也可以实现为安装于硬件设备中的应用,当然还可以实现为其他具体形式,此处不展开。
具体地,例如,在一可选实施例中,登陆模块用于接收各个用户端发送的登陆请求;基于各个用户端发送的登陆请求,生成并存储各个用户端对应的校验信息;将各个用户端对应的校验信息反馈给各个用户端。
另一可选实施例中,登陆模块为各个用户端生成校验信息时,具体用于:
响应各个用户端分别发送的登陆请求,生成各个用户端的校验信息,并将校验信息反馈给对应的用户端。
本发明实施例中,各个用户端的校验信息包括用户校验信息,用户校验信息用于校验用户身份。实际应用中,不同通信协议中用户校验信息有所不同。在一种可能的实施例中,用户校验信息包括用户标识(User ID,uid)和/或用于用户端鉴权的鉴权令牌(token)。另一种可能的实施例中,用户校验信息包括用户手机号和验证码。
在另一实施例中,各个用户端的校验信息也可以包括用户校验信息以及直播间标识,直播间标识用于表示用户可进入的直播间。可以理解的是,直播间标识可以是16位数字标识,也可以是其他格式标识,无论是何种格式的标识均根据具体通信协议规定实现的。
举例来说,上述步骤中,登陆模块可以为用户端提供登陆验证(Login&Auth)服务,且假设用户端为手机应用。
基于上述假设,用户打开手机应用后,基于该应用中的提示信息输入手机号和验证码(或者密码),从而,由该应用生成携带有手机号和验证码(或者密码)的登陆请求,并发送给登陆模块,以便触发登陆模块执行相关流程。登陆模块在接收到所述登陆请求后,获取用户对应的uid并依据相应规则为其生成token。需要说明的是,对于首次登陆的用户而言,***中并未存储其相关信息,因此可以根据相关的预设规则为用户生成uid并保存在对应的数据表中,而对于非首次登陆用户,则可以通过查询数据表的方式确认其对应的uid。在校验信息仅包括用户校验信息(例如uid和token)的情况下,登陆模块可以将用户校验信息反馈给手机应用,以供后续建立链接等操作使用,同时登陆模块也会存储用户校验信息,以供后续验证使用。请注意,此处的token是具有有效时限的,若其失效,则需要用户重新请求生成。
在另一实施例中,若校验信息包括用户校验信息以及直播间标识,则用户可以根据返回的直播间标识选择待进入的直播间,从而触发建立链接及后续动作。
上述校验信息仅为示例,实际应用中,校验信息还可以包含其他数据信息,或实现为其他形式,此处不限定。
可选地,登陆模块中还会存储各个用户端的校验信息,这些校验信息可用于校验用户合法性,实现后续直播服务中的校验功能,避免恶意用户。例如,在服务端设备搭载的登陆模块中,创建校验信息数据表,并通过该校验信息数据表存储各个用户端的校验信息,以便后续通过用户标识可以查询到对应用户的校验信息。
接着,介绍网关模块,该网关模块主要用于建立与用户端的通信连接,并基于建立的通信连接为用户端提供直播间登陆服务、直播间退出服务、以及直播服务相关的各种协议消息的转发、处理、广播。
实际应用中,网关模块可以实现为双向通信(websocket)网关,网关模块与用户端的通信连接可以实现为websocket双向长链接。websocket网关具有实时双向通信的能力,有助于实现为用户端提供稳定流畅的直播服务。其中,websocket协议是应用层协议,websocket协议是基于TCP/IP协议,websocket协议是全双工的协议,独立于HTTP协议的通信协议,类似http协议,但主要区别在于:用户端可以主动拉取直播数据,服务端(如直播服务***侧)也可以主动推送数据。实际应用中,例如,登陆到直播间A的用户a发了一条业务数据,该业务数据即可通过网关模块接收处理后,主动推送到直播间A中的其他用户,具体过程请参见下文说明。
具体地,用户端获取到登陆模块反馈的校验信息之后,根据校验信息生成用于请求创建通信连接的通信连接请求。假设该通信连接请求实现为websocket链接创建请求。假设网关模块与各个用户端的通信连接通道为websocket链接通道,比如websocket双向长链接通道。基于上述假设,网关模块创建与符合直播间登陆条件的用户端的websocket链接通道。此处的符合直播间登陆条件的用户端,可以理解为用户端用户具有直播间登陆权限,因而,在用户端接入直播间前需要对用户端用户进行校验。
具体地,网关模块在创建与符合直播间登陆条件的用户端的双向通信websocket链接通道时,具体用于:
响应用户端发送的websocket链接创建请求,通过登陆模块对用户端进行鉴权,websocket链接创建请求包括用户端的校验信息,登陆模块中存储有各个用户端的校验信息;若鉴权通过,则创建与该用户端的websocket链接通道,并在websocket链接会话中保存该用户端的校验信息。可选地,房间号可以是该用户端用户具有登陆权限的一个或多个直播间。
上述步骤中,假设websocket链接创建请求包括用户端的校验信息。假设登陆模块中存储有各个用户端的校验信息。假设各个用户端的校验信息为各个用户端对应的用户标识、房间号(即直播间标识)、鉴权令牌。基于此,响应用户端发送的websocket链接创建请求,网关模块发起与登陆模块的交互,以从登陆模块中获取该用户端的校验信息,从而实现对用户端的鉴权。具体地,网关模块从登陆模块中获取该用户端的用户标识、房间号、鉴权令牌,并基于这些校验信息判断该用户端用户是否为合法用户。
实际应用中,网关模块可对比websocket链接创建请求中携带的校验信息是否与登陆模块中存储的校验信息一致,若一致,则可以判定该用户端用户为合法用户,即该用户端鉴权通过。通过上述鉴权过程可以实现对恶意用户的拦截。若鉴权通过,此情况下,网关模块可以创建与该用户端的websocket链接通道,并在websocket链接会话中保存该用户端的校验信息,以便用于后续校验过程。
若鉴权未通过,此情况下,网关模块还用于向用户端发送用于指示websocket链接通道创建失败原因的提示消息。该提示消息例如是用户不存在,用户未关注该直播间。从而,使得用户根据用于指示websocket链接通道创建失败原因的提示消息,重新发起登陆流程,或及时获取直播间登陆权限,如关注该直播间或购买相应服务。
进而,网关模块建立websocket链接通道之后,通过websocket链接通道接收来自各个用户端的进群协议消息,并对进群协议消息进行校验。其中,进群协议消息包括用户端对应的校验信息。
其中,具体地,网关模块通过websocket链接通道接收来自各个用户端的进群协议消息,并对进群协议消息进行校验时,具体用于:
响应用户端通过websocket链接通道发送的进群协议消息,对进群协议消息进行合法性验证;若对用户端的合法性验证通过,则基于websocket链接会话中保存的校验信息,对进群协议消息进行校验,以判断进群协议消息中的校验信息与websocket链接会话中的校验信息是否一致;若对进群协议消息的校验通过,则向用户端发送用于指示直播间登陆成功的提示消息。
例如,上述步骤中,假设进群协议消息包括用户端对应的用户标识、房间号、鉴权令牌。假设用户想要进入直播间A。
基于上述假设,用户端基于自身存储的校验信息以及进群协议,生成用于请求登陆直播间A的进群协议消息a,接着,通过websocket链接通道向网关模块发送进群协议消息a。实际应用中,进群协议可以是私有协议,此处“进群”即可理解为进入直播间,或登陆直播间。为便于灵活拓展直播服务架构,此处的进群协议可以根据不同使用场景具体定制,如根据用户规模、搭建设备、平台功能等设计进群协议。
网关模块接收到进群协议消息a后,对用户端进行合法性验证,以进一步避免恶意用户登陆到直播间。具体地,网关模块通过对比进群协议消息a中携带的用户标识是否与websocket链接会话中存储的用户标识一致,若一致,则可以判定该用户端用户为合法用户,即对用户端的合法性验证通过。
若对用户端的合法性验证通过,则网关模块还可基于websocket链接会话中保存的房间号和鉴权令牌,对进群协议消息a中的房间号和鉴权令牌进行校验,以判断进群协议消息a中的房间号和鉴权令牌与websocket链接会话中的房间号和鉴权令牌是否一致。若进群协议消息a中的房间号和鉴权令牌与websocket链接会话中的房间号和鉴权令牌一致,则说明用户端用户意图进入的直播间与websocket链接会话提供的直播间一致,即对进群协议消息a的校验通过。此情况下,网关模块向用户端发送用于指示直播间登陆成功的提示消息。
若进群协议消息a中的房间号和鉴权令牌与websocket链接会话中的房间号和鉴权令牌不一致,则对进群协议消息a的校验未通过,即直播间登陆失败。可选地,此情况下,网关模块还用于向用户端发送用于指示直播间登陆失败的提示消息,以便用户根据该提示消息重新发起直播间登陆流程。实际应用中,该提示消息比如用于向用户端用户提示发送数据错误、数据格式错误,或当前用户并不属于当前直播间。
可选地,若对业务协议消息的校验未通过,则网关模块还用于向用户端发送用于指示直播间登陆失败原因的提示消息。
通过网关模块与用户端的上述交互过程,可进一步避免恶意用户用正确校验信息创建websocket链接通道后,修改校验数据恶意进入直播间的现象,或用户误入直播间(例如用户端用户想进入直播间A,但误入直播间B)的现象,从而,提高用户校验的准确性,保证直播服务的运行安全。
实际应用中,上述用户端与网关模块的交互过程,对于用户端用户来说,是隐式实现的。这里的隐式可理解为用户无感知,或用户不可见。例如,假设用户端为手机上的直播应用,用户打开直播应用后,选取主播a的直播间,从而,触发用户端与网关模块的上述交互过程。最终,通过创建websocket链接通道以及进群协议校验等流程,使得用户端用户登陆到意图进入的直播间,以获取相应直播服务。
进而,用户端登陆直播间之后,网关模块还需要执行以下工作流程,为登陆到直播间的用户端用户提供具体直播功能,具体为:
通过websocket链接通道接收来自各个用户端的业务协议消息,并触发登陆模块对业务协议消息进行校验;通过传输控制协议(Transmission Control Protocol,TCP)链接将校验通过的所述业务协议消息传输给业务逻辑处理模块。
进而,业务逻辑处理模块用于对业务协议消息中业务数据进行业务逻辑处理;将处理后的业务数据存储至消息中间件。网关模块还用于将该消息中间件中存储的业务数据异步广播至直播间。
其中,业务协议消息包括业务数据以及用户端对应的校验信息。不同业务协议中业务数据也不同。例如,聊天协议中业务数据比如实现为聊天内容、表情包图像等。送礼协议中业务数据比如实现为赠送方信息、受赠方信息、礼物信息等。
上述步骤中的TCP链接比如是预先创建的TCP长链接通道。值得说明的是,TCP是传输层协议,分为短连接和长连接。为避免TCP协议中三次握手四次挥手的业务逻辑所带来的时间开销,可以用TCP长链接提高网关模块和业务逻辑处理模块之间的传输性能,减少时间开销。可选地,网关模块和业务逻辑处理模块之间的TCP长链接通道创建后,为减少时间开销,在下架业务逻辑处理模块时,断开网关模块和业务逻辑处理模块之间的TCP长链接通道。
具体来说,上述步骤中,假设业务协议消息属于聊天协议消息。假设业务数据为聊天业务数据。假设聊天协议消息中包括聊天业务数据以及用户端对应的校验信息,该校验信息假设是用户标识、房间号、鉴权令牌。
基于上述假设,用户端响应于用户的输入信息,根据输入信息、校验信息以及聊天协议,生成对应的聊天协议消息(即业务协议消息),并通过websocket链接通道发送给网关模块。网关模块接收用户端的聊天协议消息,并基于该聊天协议消息中的校验信息对用户端用户进行合法性验证。此处合法性验证原理与上文处理进群协议消息过程中对用户端的合法性验证原理类似,相似之处参见上文,这里不在展示赘述。
进而,若用户端用户的合法性验证通过,则网关模块通过TCP长链接通道将校验通过的聊天协议消息传输给业务逻辑处理模块。具体地,在业务逻辑处理模块完成对聊天协议消息的业务逻辑处理后,会生成相应的应答协议数据,并写入消息中间件中,网关模块从消息中间件的消息队列中获取包括应答协议数据的聊天业务应答消息,并异步广播至对应直播间。其中,业务逻辑处理模块的具体工作过程参见下文。
具体地,假设直播间部署于多个网关模块中,基于此,对于多个网关模块中的任一网关模块,该网关模块将消息中间件中存储的业务数据异步广播至直播间时,具体用于:
从消息中间件的消息队列中,获取经过业务逻辑处理模块处理后的业务数据;其中,处理后的业务数据包括用于指示该业务数据对应的目标直播间标识;基于目标直播间标识,将处理后的业务数据分别异步广播至目标直播间标识对应的目标直播间,以在目标直播间中实现业务数据广播。
上述业务逻辑处理模块的具体工作过程可适用于并发获取业务数据的场景。
另一可选实施例中,网关模块还可从消息中间件的消息队列中,获取经过业务逻辑处理模块处理后的业务数据,并删除该消息队列中的该业务数据;进而,将该业务数据异步广播至目标直播间,以在该目标直播间中实现业务数据广播。通过这一实施例可简化数据获取过程,提高业务处理效率。
实际上,网关模块还可采用其他方式将消息中间件中存储的业务数据异步广播至直播间,例如,采用负载均衡策略将消息中间件中存储的业务数据异步广播至不同直播间。
此外,为便于直播服务架构的灵活拓展,还可将直播间部署于一个或多个网关模块中。例如,假设网关模块实现为websocket网关,基于此,一个直播间部署于一个websocket网关,或者一个直播间部署于多个websocket网关。再或者,多个直播间可部署于同一个websocket网关,多个直播间可分别部署于多个websocket网关。
实际应用中,在一可选情况下,假设直播间A部署在网关模块a中,网关模块a可以从消息中间件的消息队列中,获取携带有直播间A标识的业务数据,从而将获取的业务数据异步广播至登陆到直播间A的用户端中,以在直播间A中实现业务数据广播。或者,另一情况下,假设直播间B部署在网关模块a和网关模块b中,网关模块a和网关模块b均可从消息中间件的消息队列中,获取携带有直播间B标识的业务数据。然后,将获取的业务数据异步广播至与各自建立有通信连接的直播间B用户端中,从而,在直播间B中实现业务数据广播。或者,再一情况下,假设直播间C和直播间D部署在网关模块a中,网关模块a从消息中间件的消息队列中,分别获取携带有直播间C标识或者直播间D标识的业务数据。然后,将获取的业务数据分别通过异步广播至与各自建立有通信连接的直播间C或直播间D的用户端中,从而,在直播间C或直播间D中实现业务数据广播。无论是何种异步广播形式,均可实现直播间内的广播,大大提升直播服务架构的可用性。
另一可选示例中,用户端可通过域名访问网关(即网关模块),此情况下,进行DNS负载均衡。例如,假设用户a位于北京,基于此,在配置用户a可访问的官方域名时,可向用户a的客户端返回部署在北京或者用于服务北京用户的服务器对应的域名信息。其中,该部署在北京或者用于服务北京用户的服务器中,部署有本发明实施例提供的网关模块,用以为用户提供相应的网关功能,使用户可通过该网关模块进入直播间。
具体地,以直播间A为例,假设分别部署有用于服务北、上、广三地的三个网关模块,对于用户集合A1中位于北京的用户,可通过服务北京的网关模块a1进入直播间A,对于用户集合A2中位于上海的用户,可通过服务上海的网关模块a2进入直播间A,对于用户集合A3中位于广州的用户,可通过服务广州的网关模块a3进入直播间A。进而,直播间A应答的业务消息,也会通过上述三个网关模块即a1、a2、a3,分别异步广播至上述三个用户集合即A1、A2、A3中的直播间用户端。
此外,若接收到用户端的退出请求,则网关模块还用于确定断开与用户端的websocket链接通道,并在直播间中广播用于指示用户退出直播间的提示消息。或者,若监控到用户端超时,此情况下,可以确定断开与用户端的websocket链接通道,此时网关模块还可模拟生成该用户端的退出请求,以触发在直播间中广播用于指示用户退出直播间的提示消息。可选地,退群协议主要包括用户标识、直播间标识、退群时间、用户昵称、用户头像等。从而,通过上述交互过程实现直播间退出流程。
介绍完网关模块的具体功能后,接下来介绍业务逻辑处理模块的具体功能。
为提高直播服务质量,直播服务***中还设置有业务逻辑处理模块,该业务逻辑处理模块用于对业务协议消息中业务数据进行业务逻辑处理,生成相应的应答协议数据,并写入消息中间件中,以供网关模块从消息中间件中读取相应的应答协议数据来实现异步广播。可选地,应答协议消息采用聊天业务应答消息的形式存储消息中间件中。其中,消息中间件可基于设备内存实现,也可基于云节点中的虚拟存储服务实现,此处并不限定。
本发明实施例中,业务逻辑处理模块可用于实现不同的业务处理逻辑,如不文明内容拦截逻辑、送礼逻辑、用户禁言逻辑。当然,此处业务逻辑处理模块还可用于实现其他直播逻辑,此处不再赘述。实际上,与业务逻辑配合的业务协议可实现为私有协议,便于为不同直播服务需求建立定制化的业务功能。
仍以聊天协议消息为例,业务逻辑处理模块从聊天协议消息中提取聊天业务数据,判断聊天业务数据是否符合文明用语规范。若未检测到聊天业务数据中包含不符合文明用语规范的文字内容,则说明聊天业务数据符合文明用语规范,从而,基于聊天业务数据生成用于应答该聊天协议的聊天业务应答消息。最终,将聊天业务应答消息存储至消息中间件的消息队列中,以便进行聊天业务应答消息的异步广播。
若聊天业务数据不符合文明用语规范,则业务逻辑处理模块还用于确定不广播聊天业务数据,生成用于告知用户聊天业务数据不符合文明用语规范的提示消息,并发送给网关模块。具体地,网关模块还会将所述提示消息转发给用户,以提醒用户避免使用违规词汇。通过上述步骤可实现不文明内容的拦截,保障直播间运行符合相关国家规定。
可选地,聊天协议消息还可携带有其他数据信息,比如时间戳、消息序号、用户昵称、等级、头像链接等。这些数据信息可用于辅助业务逻辑处理模块生成聊天广播消息。
再例如,假设业务协议消息属于送礼协议消息。假设业务数据为送礼业务数据。假设送礼协议消息中包括赠送方信息、受赠方信息、礼物信息、以及用于合法性验证的校验信息。基于这些假设,业务逻辑处理模块接收到送礼协议消息后,从送礼协议消息中提取出赠送方信息、受赠方信息、礼物数量、礼物类型。从而,按照礼物数量从赠送方账户中扣除相应类型和数量的礼物,在受赠方账户中增加相应类型和数量的礼物。最终,生成用于告知受赠双方用户端用户的礼物送出告知消息,并将该礼物送出告知消息存储至消息中间件的消息队列中。
值得说明的是,为便于直播服务架构的灵活拓展,业务逻辑处理模块可以是多个网关模块共用的,即同一业务逻辑处理模块可以与多个网关模块建立通信连接。
直播服务***还包括注册模块,该注册模块主要用于将新增的业务逻辑处理模块的注册信息存储到服务注册表中;根据注册信息对新增的业务逻辑处理模块进行服务路由。具体地,新增一个业务逻辑处理模块时,在一个业务逻辑处理模块启动过程中,会在注册模块的服务注册表中登记该业务逻辑处理模块的注册信息,根据注册信息,采用负载均衡的方式对该业务逻辑处理模块进行服务路由。或者,采用注册信息,查找服务注册表中登记的业务逻辑处理模块,以实现该业务逻辑处理模块的服务路由。
其中,业务逻辑处理模块基于微服务技术中服务发现功能实现。主要采用以下两种机制实现业务逻辑处理模块的服务发现功能:一种机制是基于用户端侧的服务发现,例如,用户端用于确定各个业务逻辑处理模块所处的网络位置,并在各个业务逻辑处理模块之间的负载均衡。另一种机制是服务侧的服务发现,例如,用户端通过负载平衡器向发起业务逻辑处理请求,该负载均衡器查询服务注册表并将每一业务逻辑处理请求路由到可用的业务逻辑处理模块。实际应用中,负载均衡器可实现为一个服务设备或服务集群中的一个服务设备,也可实现为云服务设备的一个服务实例,本发明实施例并不限定。
为便于监控直播间的运行情况,直播服务***中还设置有监控模块(monitor),该监控模块主要用于通过时序数据库(Time Series Database)对网关模块进行监测,以可视化监控直播间运行情况。
实际应用中,将待统计的运行数据写入时序数据库中,进而,通过监控模块对这些运行数据进行处理,生成用于可视化监控直播间运行情况的数据图像。具体来说,监控模块可以是通过大数据可视化技术(Grafana)和时序数据库技术(InfluxDB)构建的。
其中,Grafana是一个跨平台的度量分析和可视化工具,可以通过将采集到的数据实现为用于可视化展示的前端元素,并及时发起通知。Grafana可以快速灵活实现各种类型的前端图表,如不同类型的可视化指标、日志、以及仪表盘插件(比如热图、折线图、图表等)。时序数据库则是Grafana的数据来源。可选地,Grafana实现的同一图表中可以混合使用不同数据源中的数据,这里不同数据源可以是指定数据源也可以是自定义数据源。实际上,Grafana所需要的运行数据还可获取自如下类型的数据库中,比如Graphite、OpenTSDB、Prometheus、Elasticsearch、CloudWatch、KairosDB等。
此外,为提高直播间监控的便利性,还可使用来自不同数据源的丰富事件注释监控模块所展示的图表。例如,将悬停在图表标明的事件上方,会触发显示完整事件元数据和相关标记,如事件类型、异常事件告警等级等标记。
具体地,监控模块可以通过数据埋点或其他形式,采集网关模块、业务逻辑处理模块、登陆模块等各个模块的运行数据,并将采集到的运行数据采用预设策略处理为用于展示直播间具体运行情况的监控图像,如动态曲线图、动态柱状图等,从而,实现对直播间运行情况的大数据监控。
以上述直播间登陆流程为例,若用户端符合直播间登陆条件,则网关模块还用于触发对时序数据库的修改操作以修改直播间用户数据。例如,网关模块向时序数据库发送新增登陆用户信息,以修改时序数据库中的直播间用户数据,如根据当前新增登陆用户修改直播间在线用户数据。从而,监控模块基于时序数据库中修改后的直播间用户数据,生成用于指示直播间在线人数的图像,并将图像展示在监控模块界面中。实际应用中,图像可以是动态曲线图,通过动态曲线图可以了解到各时段下直播间的在线用户数。
当然,除了直播间在线人数外,还可对直播间的其他数据进行监控,如直播间用户属性(如年龄层、在线时长、观看偏好等)、用户进群/退群时间、业务协议消息在各个环节的时间开销、异常数量、异常原因。
图2示出的直播服务***的工作过程中,为了实现适用于搭建中小型直播业务的直播服务架构,构建出由登陆模块、网关模块、业务逻辑处理模块、监控模块相配合得到的直播服务***。进而,通过该直播服务***能够为用户端提供直播服务,大大简化直播服务架构,提高直播服务架构的搭建效率,提升直播服务的可用性。
图3为本发明实施例提供的一种直播方法的流程示意图。该直播方法应用于直播服务***。可选地,直播服务***部署在服务端设备上。图3示出的方法可用于实现图1示出的***功能,相似之处可参见上文,本实施例中不再赘述。如图3所示,该直播服务***包括:登陆模块、网关模块、业务逻辑处理模块、监控模块。该方法包括如下步骤:
301、登陆模块接收各个用户端发送的登陆请求。
302、登陆模块基于各个用户端发送的登陆请求,生成并存储各个用户端对应的校验信息。
303、登陆模块将各个用户端对应的校验信息反馈给各个用户端。
304、网关模块创建与符合直播间登陆条件的用户端的双向通信websocket链接通道。
305、网关模块通过websocket链接通道接收来自各个用户端的进群协议消息,并对所述进群协议消息进行校验,所述进群协议消息包括各个用户端对应的校验信息。
306、网关模块通过websocket链接通道接收来自各个用户端的业务协议消息,并触发所述登陆模块对所述业务协议消息进行校验,其中所述业务协议消息包括业务数据以及各个用户端对应的校验信息。
307、登陆模块通过存储的各个用户端对应的校验信息,对所述业务协议消息进行校验。
308、网关模块通过TCP链接将校验通过的所述业务协议消息传输给业务逻辑处理模块。
309、业务逻辑处理模块对所述业务协议消息中业务数据进行业务逻辑处理。
310、业务逻辑处理模块将处理后的业务数据存储至消息中间件。
311、网关模块将消息中间件中存储的业务数据异步广播至直播间。
312、监控模块采用时序数据库对网关模块进行监测,以可视化监控直播间运行情况。
可选地,所述直播方法还包括如下步骤:
若监控到用户端超时或接收到用户端的退出请求,则网关模块确定断开与用户端的websocket链接通道,并在直播间中广播用于指示用户退出直播间的提示消息。
可选地,所述直播方法还包括如下步骤:若用户端符合所述直播间登陆条件,则触发对时序数据库的修改操作以修改直播间用户数据。
其中,监控模块采用时序数据库对网关模块进行监测,以可视化监控直播间运行情况,具体包括:基于所述时序数据库中修改后的直播间用户数据,生成用于指示直播间在线人数的图像,并将所述图像展示在监控模块界面中。
可选地,各个用户端对应的校验信息包括用户校验信息,所述用户校验信息包括用户标识和/或用于用户端鉴权的鉴权令牌。或者,另一实施例中,各个用户端的校验信息也可以包括用户校验信息以及直播间标识,直播间标识用于表示用户可进入的直播间。
可选地,网关模块创建与符合直播间登陆条件的用户端的双向通信websocket链接通道,具体包括:
响应用户端发送的websocket链接创建请求,通过登陆模块对用户端进行鉴权,所述websocket链接创建请求包括用户端的校验信息,登陆模块中存储有各个用户端的校验信息;若鉴权通过,则创建与该用户端的websocket链接通道,并在websocket链接会话中保存该用户端的校验信息。
其中,可选地,所述直播方法还包括如下步骤:
若鉴权未通过,则网关模块向用户端发送用于指示websocket链接通道创建失败原因的提示消息。
其中,可选地,网关模块通过websocket链接通道接收来自各个用户端的进群协议消息,并对所述进群协议消息进行校验,具体包括:
响应用户端通过websocket链接通道发送的进群协议消息,对用户端进行合法性验证;若对所述用户端的合法性验证通过,则基于所述websocket链接会话中保存的校验信息,对所述进群协议消息进行校验,以判断所述进群协议消息中的校验信息与所述websocket链接会话中的校验信息是否一致;若对所述进群协议消息的校验通过,则向用户端发送用于指示直播间登陆成功的提示消息。
其中,可选地,所述直播方法还包括如下步骤:
若对所述进群协议消息的校验未通过,则网关模块向用户端发送用于指示直播间登陆失败的提示消息。
其中,可选地,所述直播方法还包括如下步骤:
若对所述业务协议消息的校验未通过,则网关模块向用户端发送用于指示直播间登陆失败原因的提示消息。
可选地,所述直播方法还包括如下步骤:将新增的业务逻辑处理模块的注册信息存储到注册模块的服务注册表中;根据所述注册信息对新增的业务逻辑处理模块进行服务路由。
实际应用中,业务逻辑处理模块基于微服务技术中服务发现功能实现。
可选地,若所述业务协议消息属于聊天协议消息,并且,业务数据为聊天业务数据,则业务逻辑处理模块对所述业务协议消息中业务数据进行业务逻辑处理,具体包括:
若所述业务协议消息属于聊天协议消息,则从聊天协议消息中提取聊天业务数据;判断所述聊天业务数据是否符合文明用语规范;若所述聊天业务数据符合所述文明用语规范,则基于所述聊天业务数据生成聊天广播消息。
进而,业务逻辑处理模块将处理后的业务数据存储至消息中间件,具体包括:将所述聊天广播消息存储至消息中间件的消息队列中。
实际应用中,在业务逻辑处理模块完成对聊天协议消息的业务逻辑处理后,会生成相应的应答协议数据,并写入消息中间件中,网关模块从消息中间件的消息队列中获取包括应答协议数据的聊天业务应答消息,并异步广播至对应直播间。
可选地,若所述聊天业务数据不符合所述文明用语规范,则业务逻辑处理模块确定不广播所述聊天业务数据;生成用于告知用户所述聊天业务数据不符合文明用语规范的提示消息,并发送给网关模块。
可选地,直播间部署于一个或多个网关模块中。
其中,可选地,直播间部署于多个网关模块中。对于所述多个网关模块中任一所述的网关模块,该网关模块将所述消息中间件中存储的业务数据异步广播至直播间,具体包括:
从消息中间件的消息队列中,获取经过所述业务逻辑处理模块处理后的业务数据;其中,处理后的业务数据包括用于指示该业务数据对应的目标直播间标识。基于所述目标直播间标识,将处理后的业务数据分别异步广播至所述目标直播间标识对应的目标直播间,以在所述目标直播间中实现业务数据广播。
在一可选示例中,网关模块从消息中间件的消息队列中,获取包括应答协议数据(即处理后的业务数据)的聊天业务应答消息,该聊天业务应答消息包括用于指示该聊天业务应答消息对应的目标直播间标识。基于所述目标直播间标识,将聊天业务应答消息分别异步广播至所述目标直播间标识对应的目标直播间,以在所述目标直播间中实现业务数据广播。
另一可选示例中,网关模块还可从消息中间件的消息队列中,获取获取包括应答协议数据(即处理后的业务数据)的聊天业务应答消息,并删除该消息队列中的该聊天业务应答消息;进而,将该聊天业务应答消息异步广播至目标直播间,以在该目标直播间中实现聊天业务应答消息的广播。通过这一实施例可简化数据获取过程,提高业务处理效率。
图3示出的直播方法,也能够大大简化直播服务架构,提高直播服务架构的搭建效率,提升直播服务的可用性。
本实施例提供的直播方法的详细执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
以下将详细描述本发明的一个或多个实施例的直播服务装置。本领域技术人员可以理解,这些直播服务装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
上述直播服务装置的结构可实现为一电子设备。该电子设备对应于前述实施例中的直播服务***。如图4所示,该电子设备可以包括:处理器401、存储器402。其中,存储器402上存储有可执行代码,当所述可执行代码被处理器401执行时,至少使处理器401可以实现如前述图1所示实施例中提供的***功能。实际应用中,该电子设备可实现为服务端设备,如服务器。
其中,该电子设备的结构中还可以包括通信接口403,用于与其他设备通信。
另外,本发明实施例提供了一种存储介质,所述存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行前述图2所示实施例中提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的各个模块可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对本发明做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种直播服务***,其特征在于,所述***包括登陆模块、网关模块、业务逻辑处理模块、监控模块,其中
所述登陆模块,用于接收各个用户端发送的登陆请求;基于各个用户端发送的登陆请求,生成并存储各个用户端对应的校验信息;将各个用户端对应的校验信息反馈给各个用户端;
所述网关模块,用于创建与符合直播间登陆条件的用户端的双向通信websocket链接通道;通过websocket链接通道接收来自各个用户端的进群协议消息,并对所述进群协议消息进行校验,所述进群协议消息包括各个用户端对应的校验信息;通过websocket链接通道接收来自各个用户端的业务协议消息,并触发所述登陆模块对所述业务协议消息进行校验,其中所述业务协议消息包括业务数据以及用户端对应的校验信息;
所述登陆模块,还用于通过存储的各个用户端对应的校验信息,对所述业务协议消息进行校验;
所述网关模块,还用于通过TCP链接将校验通过的所述业务协议消息传输给所述业务逻辑处理模块;
所述业务逻辑处理模块,用于对所述业务协议消息中业务数据进行业务逻辑处理;将处理后的业务数据存储至消息中间件;
所述网关模块,还用于将所述消息中间件中存储的业务数据异步广播至直播间;
所述监控模块,用于通过时序数据库对网关模块进行监测,以可视化监控直播间运行情况。
2.根据权利要求1所述的直播服务***,其特征在于,
若监控到用户端超时或接收到用户端的退出请求,则所述网关模块还用于确定断开与用户端的websocket链接通道,并
在直播间中广播用于指示用户退出直播间的提示消息。
3.根据权利要求1所述的直播服务***,其特征在于,
若用户端符合所述直播间登陆条件,则所述网关模块还用于触发对时序数据库的修改操作以修改直播间用户数据;
所述监控模块通过时序数据库对网关模块进行监测,以可视化监控直播间运行情况时,具体用于:
基于所述时序数据库中修改后的直播间用户数据,生成用于指示直播间在线人数的图像,并将所述图像展示在监控模块界面中。
4.根据权利要求1所述的直播服务***,其特征在于,各个用户端对应的校验信息包括用户校验信息,所述用户校验信息包括用户标识和/或用于用户端鉴权的鉴权令牌。
5.根据权利要求1所述的直播服务***,其特征在于,所述网关模块在创建与符合直播间登陆条件的用户端的双向通信websocket链接通道时,具体用于:
响应用户端发送的websocket链接创建请求,通过登陆模块对用户端进行鉴权,所述websocket链接创建请求包括用户端的校验信息,所述登陆模块中存储有各个用户端的校验信息;
若鉴权通过,则创建与该用户端的websocket链接通道,并在websocket链接会话中保存该用户端的校验信息。
6.根据权利要求5所述的直播服务***,其特征在于,
所述网关模块通过websocket链接通道接收来自各个用户端的进群协议消息,并对所述进群协议消息进行校验时,具体用于:
响应用户端通过websocket链接通道发送的进群协议消息,对用户端进行合法性验证;
若对所述用户端的合法性验证通过,则基于所述websocket链接会话中保存的校验信息,对所述进群协议消息进行校验,以判断所述进群协议消息中的校验信息与所述websocket链接会话中的校验信息是否一致;
若对所述进群协议消息的校验通过,则向用户端发送用于指示直播间登陆成功的提示消息。
7.根据权利要求1所述的直播服务***,其特征在于,所述***还包括注册模块,用于将新增的业务逻辑处理模块的注册信息存储到服务注册表中;根据所述注册信息对新增的业务逻辑处理模块进行服务路由。
8.根据权利要求1所述的直播服务***,其特征在于,直播间部署于多个网关模块中;
对于所述多个网关模块中任一所述的网关模块,所述网关模块将所述消息中间件中存储的业务数据异步广播至直播间时,具体用于:
从消息中间件的消息队列中,获取经过所述业务逻辑处理模块处理后的业务数据;其中,处理后的业务数据包括用于指示该业务数据对应的目标直播间的消息标识;
基于所述消息标识将处理后的业务数据分别异步广播至对应的目标直播间,以在所述目标直播间中实现业务数据广播。
9.一种直播方法,其特征在于,所述方法适用于直播服务***,所述***包括登陆模块、网关模块、业务逻辑处理模块、监控模块,所述方法包括:
所述登陆模块接收各个用户端发送的登陆请求;
所述登陆模块基于各个用户端发送的登陆请求,生成并存储各个用户端对应的校验信息;
所述登陆模块将各个用户端对应的校验信息反馈给各个用户端;
所述网关模块创建与符合直播间登陆条件的用户端的双向通信websocket链接通道;
所述网关模块通过websocket链接通道接收来自各个用户端的进群协议消息,并对所述进群协议消息进行校验,所述进群协议消息包括各个用户端对应的校验信息;
所述网关模块通过websocket链接通道接收来自各个用户端的业务协议消息,并触发所述登陆模块对所述业务协议消息进行校验,其中所述业务协议消息包括业务数据以及各个用户端对应的校验信息;
所述登陆模块通过存储的各个用户端对应的校验信息,对所述业务协议消息进行校验;
所述网关模块通过TCP链接将校验通过的所述业务协议消息传输给所述业务逻辑处理模块;
所述业务逻辑处理模块对所述业务协议消息中业务数据进行业务逻辑处理;
所述业务逻辑处理模块将处理后的业务数据存储至消息中间件;
所述网关模块将所述消息中间件中存储的业务数据异步广播至直播间;
所述监控模块采用时序数据库对网关模块进行监测,以可视化监控直播间运行情况。
10.一种服务器,其特征在于,所述服务器包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述的***功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110351910.4A CN113132745B (zh) | 2021-03-31 | 2021-03-31 | 直播服务***、方法、服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110351910.4A CN113132745B (zh) | 2021-03-31 | 2021-03-31 | 直播服务***、方法、服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113132745A CN113132745A (zh) | 2021-07-16 |
CN113132745B true CN113132745B (zh) | 2022-06-03 |
Family
ID=76775409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110351910.4A Active CN113132745B (zh) | 2021-03-31 | 2021-03-31 | 直播服务***、方法、服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113132745B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115379013A (zh) * | 2022-06-29 | 2022-11-22 | 广州博冠信息科技有限公司 | 数据处理方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791443A (zh) * | 2016-05-13 | 2016-07-20 | 武汉斗鱼网络科技有限公司 | 基于分布式集群的直播网站中用户服务提供***及方法 |
CN111654713A (zh) * | 2020-04-20 | 2020-09-11 | 视联动力信息技术股份有限公司 | 一种直播互动方法及装置 |
CN111711689A (zh) * | 2020-06-16 | 2020-09-25 | 深圳市思迪信息技术股份有限公司 | 投顾***图文直播方法及***、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11038875B2 (en) * | 2017-09-20 | 2021-06-15 | Mx Technologies, Inc. | Data aggregation using a limited-use code |
-
2021
- 2021-03-31 CN CN202110351910.4A patent/CN113132745B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791443A (zh) * | 2016-05-13 | 2016-07-20 | 武汉斗鱼网络科技有限公司 | 基于分布式集群的直播网站中用户服务提供***及方法 |
CN111654713A (zh) * | 2020-04-20 | 2020-09-11 | 视联动力信息技术股份有限公司 | 一种直播互动方法及装置 |
CN111711689A (zh) * | 2020-06-16 | 2020-09-25 | 深圳市思迪信息技术股份有限公司 | 投顾***图文直播方法及***、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113132745A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9686329B2 (en) | Method and apparatus for displaying webcast rooms | |
CN108476165B (zh) | 一种信息交互方法、客户端和装置 | |
US8990325B2 (en) | Real-time and interactive community-based content publishing system | |
EP2599271B1 (en) | Instant messaging using multiple instances of a client | |
US20170289070A1 (en) | Making a Dialogue Available To an Autonomous Software Agent | |
US20170288942A1 (en) | Portal for Provisioning Autonomous Software Agents | |
US20170288943A1 (en) | Supplying Context Data to a Servicing Entity | |
WO2007095800A1 (fr) | Dispositif d'interface pour services de présence, système de services de présence et procédé de publication et d'obtention d'informations de présence | |
US20170289069A1 (en) | Selecting an Autonomous Software Agent | |
WO2014183427A1 (en) | Method and apparatus for displaying webcast rooms | |
KR20090017629A (ko) | 프레즌스 서버의 사용자 상태 원격 업데이트 | |
WO2021237433A1 (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN113157466A (zh) | 一种消息推送方法、装置、***、电子设备和存储介质 | |
CN103259715B (zh) | 一种管理多人会话的方法、装置及*** | |
CN114024972B (zh) | 一种长连接通信方法、***、装置、设备及存储介质 | |
CN110381058B (zh) | 基于全双工通信协议WebSocket的请求传输方法及装置 | |
US10582563B2 (en) | Service data group sending method, apparatus, and server | |
US9210117B2 (en) | Invitation information push method and system | |
CN113132745B (zh) | 直播服务***、方法、服务器 | |
US20110252105A1 (en) | Mobile communication system and method for the requesting of positive delivery reports from individual group members | |
RU2527213C2 (ru) | Способ и сервер для передачи сообщения | |
WO2012028046A1 (zh) | 实现多用户关系链变化的装置、***及方法 | |
CN108668151B (zh) | 音视频交互方法及装置 | |
CN106961457B (zh) | 一种移动互联网企业工具条应用的方法及*** | |
WO2016184350A1 (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 |