CN110191348A - 视频直播中互动消息的处理方法及装置 - Google Patents
视频直播中互动消息的处理方法及装置 Download PDFInfo
- Publication number
- CN110191348A CN110191348A CN201810155254.9A CN201810155254A CN110191348A CN 110191348 A CN110191348 A CN 110191348A CN 201810155254 A CN201810155254 A CN 201810155254A CN 110191348 A CN110191348 A CN 110191348A
- Authority
- CN
- China
- Prior art keywords
- message
- interactive
- queue
- interactive message
- threshold
- 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.)
- Granted
Links
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
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种视频直播中互动消息的处理方法及装置,其中,该方法包括:接收服务器发送的互动消息;根据互动消息中的消息等级信息判定互动消息的等级;若互动消息为高级互动消息,根据互动消息中的直播间标识将互动消息存储到对应的消息队列;否则判定消息队列中除高级互动消息以外的其他互动消息的消息数量是否小于第一阈值,若小于第一阈值,则将互动消息存储到消息队列,若大于或等于第一阈值,则丢弃互动消息,将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。本发明通过对直播时收到的互动消息进行过滤,能够保证主播端的直播流畅性,提升直播效果和用户体验。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种基于区块链技术的视频直播中互动消息的处理方法及装置。
背景技术
目前,随着网络通信技术的进步和宽带网络的提速,网络视频直播得到了越来越多的应用,而且越来越受到大家的欢迎。越来越多的观众会观看主播的直播,而且在直播过程中,主播和观众之间能够进行各种互动,以活跃直播间的气氛。
直播中如弹幕、礼物等互动消息则是主播和观众之间非常好的互动方式。主播在直播时,观众发送弹幕、礼物等信息来表达观众对主播的喜爱,还可以通过发送弹幕来表达观众的评论信息。
但是,当主播直播过程中,如果观众比较多时,互动消息也会比较多,从而主播整个直播屏幕都是互动消息,导致主播和观众无法看清楚直播的内容,而且由于互动消息的量过大,主播满屏都是互动消息,进而导致主播也无法看清互动消息的具体内容,更无法从互动消息中看到自己的VIP观众发送的互动消息,如VIP观众发送的弹幕评论或礼物。而且,由于过多互动消息的显示会消耗大量的CPU资源,还容易造成直播时卡顿,不流畅,影响直播效果和用户体验。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的视频直播中互动消息的处理方法及装置。
本发明的一个方面,提供了一种视频直播中互动消息的处理方法,所述方法包括:
接收服务器发送的互动消息,所述互动消息中携带有消息发送用户当前所在直播间的直播间标识和消息等级信息;
根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息;
若所述互动消息为指定的高级互动消息,则根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
否则判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否小于预设的第一阈值,若所述其他互动消息的消息数量小于所述第一阈值,则根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列,否则丢弃所述互动消息,所述第一阈值表示预设显示时段内所述消息队列中存储的除所述高级互动消息以外的其他互动消息的最大消息数量;
将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。
可选地,所述根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,包括:
判定当前显示时段内所述消息队列中互动消息的消息总数量是否等于第二阈值,若所述消息队列中互动消息的消息总数量等于第二阈值,则根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,所述第二阈值表示预设显示时段内消息队列中互动消息的最大消息数量。
可选地,在所述接收服务器发送的互动消息之前,所述方法还包括:
根据所述直播间的主播客户端触发的配置请求,确定所述第一阈值和所述第二阈值。
可选地,所述互动消息中还携带有消息类型信息;
在所述根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息之前,所述方法还包括:
根据所述消息类型信息判定所述互动消息是否为礼物消息;
若所述互动消息为礼物消息时,则在所述丢弃所述互动消息之后,所述方法还包括:
将当前显示时段内接收到的除所述高级互动消息以外的其他互动消息的消息总数量,并将当前显示时段内所述其他互动消息的消息总数量推送到所述直播间的主播客户端进行显示。
可选地,所述消息队列包括用于存储高级互动消息的第一子消息队列和用于存储除高级互动消息以外的其他互动消息的第二子消息队列;
统计所述第二子消息队列的消息数量,得到当前显示时段内所述其他互动消息的消息总数量。
本发明的另一个方面,提供了一种视频直播中互动消息的处理装置,所述装置包括:
接收模块,用于接收服务器发送的互动消息,所述互动消息中携带有消息发送用户当前所在直播间的直播间标识和消息等级信息;
第一判定模块,用于根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息;
存储模块,用于当第一判定模块的判定结果为所述互动消息为指定的高级互动消息时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
第二判定模块,用于当第一判定模块的判定结果为所述互动消息不是指定的高级互动消息时,判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否小于预设的第一阈值,所述第一阈值表示预设显示时段内所述消息队列中存储的除所述高级互动消息以外的其他互动消息的最大消息数量;
所述存储模块,还用于当所述第二判定模块的判定结果为其他互动消息的消息数量小于所述第一阈值时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
过滤模块,用于当所述第二判定模块的判定结果为其他互动消息的消息数量大于或等于所述第一阈值时,丢弃所述互动消息;
推送模块,用于将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。
可选地,所述第一判定模块,具体用于判定当前显示时段内所述消息队列中互动消息的消息总数量是否等于第二阈值,若所述消息队列中互动消息的消息总数量等于第二阈值,则根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,所述第二阈值表示预设显示时段内消息队列中互动消息的最大消息数量。
可选地,所述互动消息中还携带有消息类型信息;
所述装置还包括:
第三判定模块,用于在所述第一判定模块根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息之前,根据所述消息类型信息判定所述互动消息是否为礼物消息;
统计模块,用于当所述第三判定模块的判定结果为所述互动消息为礼物消息时,在所述丢弃所述互动消息之后,统计当前显示时段内接收到的除所述高级互动消息以外的其他互动消息的消息总数量;
所述推送模块,还用于将当前显示时段内所述其他互动消息的消息总数量推送到所述直播间的主播客户端进行显示。
此外,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。
此外,本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法的步骤。
本发明实施例提供的视频直播中互动消息的处理方法及装置,通过设置显示时段内直播间对应的消息队列中存储的除高级互动消息以外的其他互动消息(低级互动消息)的最大消息数量的第一阈值,并在当消息队列中除高级互动消息以外的其他互动消息的消息数量等于预设的第一阈值时,对直播时收到的除高级互动消息以外的其他互动消息进行丢弃,实现对低级互动消息的过滤,在不影响主播对满足要求的高级用户的互动消息的显示及观看的同时,保证主播端的直播流畅性,提升直播效果和用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的一种视频直播中互动消息的处理方法的流程图;
图2为本发明实施例的一种视频直播中互动消息的处理装置的结构框图;
图3为本发明实施例的计算机设备的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
图1示意性示出了本发明一个实施例的视频直播中互动消息的处理方法的流程图。参照图1,本发明实施例的视频直播中互动消息的处理方法具体包括以下步骤:
步骤S11、接收服务器发送的互动消息,所述互动消息中携带有消息发送用户当前所在直播间的直播间标识和消息等级信息。
本实施例中,互动消息包括礼物消息、弹幕消息等用于视频直播中观众和主播进行互动的消息。所述互动消息中除了携带有互动消息的消息发送用户当前所在直播间的直播间标识和消息等级信息以外,还包括互动消息的消息类型,如弹幕消息或礼物消息,互动消息的消息内容,如具体礼物内容或弹幕内容,以及用户的用户标识。
其中,直播间的直播间标识可以为房间号,消息等级信息可以为预设的等级标识,当该标识为指定内容时,则认为对应互动消息为高级互动消息,否则认为对应互动消息为除所述高级互动消息以外的其他互动消息,在一个具体示例中,除所述高级互动消息以外的其他互动消息可以统称为低级消息。
具体的,服务器可以将高级用户发送的互动消息标识为高级互动消息,或是根据互动消息的内容确定互动消息标识是否为高级互动消息。其中,高级用户包括主播的VIP用户或贵族用户,还可以包括直播间的房管和/或直播间的超管等。例如,对于礼物消息,可以将主播的VIP用户或贵族用户发送的礼物消息,或是满足系统预先设定的礼物等级的礼物消息标识为高级互动消息。再例如,对于弹幕消息,可以将主播的VIP用户、贵族用户、直播间的房管和/或直播间的超管等观众用户发送的弹幕消息标识为高级互动消息。
可理解的,对于高级互动消息的具体认定原则,可根据直播的实际场景进行不同的设置,本发明对此不做具体限定。
步骤S12、根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,若所述互动消息为指定的高级互动消息,则执行步骤S13,并在步骤S13之后,执行步骤S16,否则执行步骤S14。
具体的,本步骤中可以根据消息等级信息对应等级标识的具体内容,判定所述互动消息是否被标识为指定的高级互动消息。
步骤S13、根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列。
本实施例中,通过在主播客户端中,设置一个消息队列来用于存储接收到的服务器发送的交互消息,并且设置一个线程不断的通过网络Socket来从服务器接收交互消息。
具体的,所述消息队列可以被接收交互消息的线程投递交互消息,其他线程则会从队列中取交互消息进行交互消息的显示。本实施例中,具体使用STL容器的list容器实现消息队列。list容器是一个链表,可以高效的从链表中进行插入交互消息和取出交互消息操作。对于每个交互消息则是服务器下发的具体消息内容。
步骤S14、判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否小于预设的第一阈值,若所述其他互动消息的消息数量小于所述第一阈值,所述第一阈值表示预设显示时段内所述消息队列中存储的除所述高级互动消息以外的其他互动消息的最大消息数量,则执行步骤S13,否则执行步骤S15。
在一个具体示例中,预设显示时段的时间长度可以为1秒钟。相应的,所述第一阈值即1秒钟最多能显示的除所述高级互动消息以外的其他互动消息的消息数量。本实施例中,通过设置第一阈值来实现控制消息队列中1秒钟最多能存储的除所述高级互动消息以外的其他互动消息的数量。
步骤S15、丢弃所述互动消息。
本步骤中,当判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量大于或等于预设的第一阈值时,则丢弃所述互动消息。
本实施例中,对于高级互动消息,则不丢弃,直接放入消息队列中,然后对于除高级互动消息以外的其他互动消息,当在消息队列中除高级互动消息以外的其他互动消息的消息数量等于预设的第一阈值时,直接丢弃所述互动消息,以实现对直播时收到的除高级互动消息以外的其他互动消息的过滤。
对于消息队列来说,设置有一个计数值,每存储一个互动消息则计数加1,而每从队列中取出一个互动消息则计数减1,每次存入互动消息时则会判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否等于预设的第一阈值,如果等于预设的第一阈值,则将互动消息丢弃,不存入队列中,否则将互动消息存入消息队列中进行应用层展示。
步骤S16、将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。
本发明实施例提供的视频直播中互动消息的处理方法,通过设置显示时段内直播间对应的消息队列中存储的除高级互动消息以外的其他互动消息(低级互动消息)的最大消息数量的第一阈值,并在当消息队列中除高级互动消息以外的其他互动消息的消息数量等于预设的第一阈值时,对直播时收到的除高级互动消息以外的其他互动消息进行丢弃,实现对低级互动消息的过滤,在不影响主播对满足要求的高级用户的互动消息的显示及观看的同时,保证主播端的直播流畅性,提升直播效果和用户体验。
在本发明实施例中,所述根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,具体包括:
判定当前显示时段内所述消息队列中互动消息的消息总数量是否等于第二阈值,若所述消息队列中互动消息的消息总数量等于第二阈值,则根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,所述第二阈值表示预设显示时段内消息队列中互动消息的最大消息数量。
本实施例中,第二阈值是用于设置主播端同一时刻消息队列中同时存储的所有弹幕数量的最大值,用于控制弹幕队列中同时存储的所有弹幕数量。若所述消息队列中互动消息的消息总数量等于第二阈值,则对互动消息是的消息类型进行判断,并根据第二阈值执行对除所述高级互动消息以外的其他互动消息的过滤操作。
进一步地,在所述接收服务器发送的互动消息之前,所述方法还包括:根据所述直播间的主播客户端触发的配置请求,确定所述第一阈值和所述第二阈值。本实施例中,主播可以通过服务器提供的配置页面实现对所述第一阈值和所述第二阈值的配置。
本发明实施例中,所述互动消息中还携带有消息类型信息。
相应的,在所述根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息之前,所述方法还包括:
根据所述消息类型信息判定所述互动消息是否为礼物消息;
若所述互动消息为礼物消息时,则在所述丢弃所述互动消息之后,所述方法还包括:将当前显示时段内接收到的除所述高级互动消息以外的其他互动消息的消息总数量,并将当前显示时段内所述其他互动消息的消息总数量推送到所述直播间的主播客户端进行显示。
进一步地,当互动消息为礼物消息时,所述消息队列包括用于存储高级互动消息的第一子消息队列和用于存储除高级互动消息以外的其他互动消息的第二子消息队列;
统计所述第二子消息队列的消息数量,得到当前显示时段内所述其他互动消息的消息总数量。
对于礼物消息来说,主播端不能够丢失礼物,同时有些礼物是有其他的逻辑关系,例如多个低价值礼物可以兑换什么礼物,或者产生什么特效等。然而礼物多时,由于其图片的显示特效的显示从而更易于导致消耗过多的CPU,因此本发明实施例则将高价值礼物使用队列来一个个展示,而对于低价值礼物,当低价值礼物超过数量限制时,则只显示当前低价值的礼物数量,而不在主播端进行动画效果的显示。具体的,本发明实施例中使用2个队列来存储礼物,由于实际应用中的高级礼物数量相对于低级礼物数量会少很多,因此一个队列用于显示高级礼物,一个队列用于显示低级礼物。其中高级礼物队列无数量限制,而低级礼物队列有数量限制。
下面通过两个具体实施例分别对消息类型为礼物消息的互动消息和消息类型为弹幕消息的互动消息的处理实现方案进行详细说明。
实施例1
本实施例中的互动消息的消息类型为礼物消息。
主播端会收到各种各样的礼物信息,包括一些高级礼物,低价礼物等。由于礼物降级功能本身也会消耗CPU资源,为了减少CPU的消耗,本文将礼物降级的功能做到底层库中,从而减少CPU消耗。本文会设置一个礼物队列,将收到服务器的所有礼物放入队列中,同时设置每秒钟礼物队列的数量阈值,当超过阈值时,会对礼物的类型进行判断,首先对于高级礼物则不丢弃,直接放入队列中,然后对于普通礼物则优先丢弃,不放入队列中。而同一时刻礼物队列会有另一个阈值,当队列弹幕超过阈值时,所有礼物都将会不进行显示只进行显示数量,否则存入队列。从而通过控制队列每秒中存入的礼物数量来控制主播端礼物显示的数量,从而即可以让主播看到关键礼物,同时也可以减少主播端CPU消耗,使得直播更为流畅,而对于礼物则可以同一时间内的礼物进行连击的效果,从而渲染展示则只展示一个礼物。
对于礼物来说,主播端不能够丢失礼物,同时有些礼物是有其他的逻辑关系,例如多个低价值礼物可以兑换什么礼物,或者产生什么特效等。然而礼物多时,由于其图片的显示特效的显示从而更易于导致消耗过多的CPU,因此本文则将高价值礼物使用队列来一个个展示,而对于低价值礼物,当低价值礼物超过数量限制时,则只显示当前低价值的礼物数量,而不在主播端进行动画效果的显示。本文则使用2个队列来存储礼物,一个队列用于显示高级礼物,一个队列用于显示低级礼物。其中高级礼物队列无数量限制,而低级礼物队列有数量限制。由于高级礼物数量相对于低级礼物数量会少很多。
本发明的实现方案包括如下步骤:
(1)服务器会对每个主播设置第一阈值。
(2)当主播端启动时从服务器拉取第一阈值。
当主播端启动开始直播时,则会从PHP服务器拉取阈值信息。并将阈值透传给底层礼物库信息处理逻辑中。
(3)主播端设置一个接收礼物信息的线程和队列。
在主播客户端中,设置2个队列用于存储收到服务器的所有礼物消息,一个队列用于存储高级礼物,一个队列用于存储低级礼物。其中高级礼物队列无数量限制,而低级礼物队列有数量限制。并且编写一个线程不断的通过网络Socket来从礼物服务器收取礼物消息。线程不断的收取礼物,收到礼物后进行后续的礼物过滤,如果不需要过滤的则存储到高级礼物队列中,否则需要过滤的礼物则丢弃掉不进行显示只计数。
设置一个礼物队列,该队列则可以被接收礼物线程投递礼物,其他线程则会从队列中取礼物进行屏幕显示。具体使用STL容器的list容器,list容器是一个链表,可以高效的从链表中插入礼物和取出礼物操作。具体队列实现如下:
生成一个队列的类,该类有成员变量list<Gift>用于存储礼物,并且设置接口来提供从队列中取礼物和从队列中插入礼物的操作。具体的类如下:
Class Cqueue
{
Public:
Gift*GetGift()
{
Lock(m_mutex);
对互斥变量加锁,防止其他线程同时对该队列增加礼物和取礼物。
If(m_listGift.empt())
{return NULL;}
如果队列中没有礼物则返回的礼物为空。
Gift*pGift=m_listGift.front();
从任务队列的头部取出一个礼物。
m_listGift.pop_front();
将头部被取出的礼物从队列中删除掉。
}
Void AddGift(Gift*pGift)
{
Lock(m_mutex);
对互斥变量加锁,防止其他线程同时对该队列增加礼物。
m_listDanmu.push_back(pGift);
往任务队列中添加一个弹幕,并且加入到弹幕队列的最尾部。
}
Private:
List<Gift*>m_listGift;
定义一个list容器来存储礼物Gift。
Mutex m_mutex;
定义一个互斥变量来保障对礼物队列的操作是线程安全的,当多个线程同时对一个队列进行操作时,互斥变量保障操作按照先后顺序进行。
}
(4)主播端设置一个线程不断的从队列中取礼物给到应用层进行显示。
在主播端,设置另一个线程,用于不断的从礼物队列中取出礼物信息,然后将礼物信息推送到主播端的应用层逻辑中,在应用层逻辑中则对礼物在主播屏幕中进行显示礼物信息。具体则是不断的从队列Cqueue中调用函数Gift*GetGift()来取出礼物并投递给应用层进行屏幕展示。
(5)主播端进行礼物降级。
主播端的接收服务器消息的线程中,会不断的收到服务器的网络消息,首先则需要判断消息类型,若消息为礼物的消息执行过滤逻辑。具体实现如下:
服务器发送给客户端的消息都会具有消息类型字段,通过消息类型则可以判断当前的消息是不是礼物消息。
具体的一条礼物消息如下:
type@=bgd/rid@=3256/ct@=1/uid@=2145632/gifid@=666/nn@=d1/level@=3/bg@=1/
其中bgd则表示当前的消息类型是礼物消息,后续的字段rid则表示房间号,gifid则表示礼物的ID,nn表示赠送者的名称,level表示赠送者等级,bg字段表示是否是是高级礼物,其中bg=1则是高级礼物,否则是低级礼物。后续则对低级礼物消息依据设置的阈值来进行过滤。
对收到的礼物进行的判断逻辑如下:
取出礼物的关键字段,包括bg字段。
如果bg==1则是高级礼物,否则是低级礼物。
如果是高级礼物则直接存入高级礼物的队列中,如果是低级礼物则需要进行过滤判断。
主播设置的第一阈值进行过滤。
则需要依据设置的阈值来对低级礼物进行1秒钟内收到的礼物进行判断。具体实现如下:
设置的低级礼物每秒钟最多阈值存储在变量g_hostgiftlimit。
定义一个变量用于存储当前1秒钟内收到的低级礼物数量uint32_tg_nPutGiftNumPerSecond=0;
定义一个变量用于存储上一个1秒钟的时刻的毫秒数uint64_tg_nPrevCourTickCount=0;
首先获取当前的时刻的毫秒数。
uint64_t nCourTickCount=nowmsecond();
表示当前收到的礼物的毫秒数。
uint64_t nElapse=nCourTickCount-g_nPrevCourTickCount;
表示当前礼物与上一个1秒的时间差值nElapse。
定义变量int nIsFilter=0;表示此礼物是否需要过滤,初始为0表示不需要过滤。
if(nElapse<1000)时间小于1秒
{
++g_nPutGiftNumPerSecond;礼物数量加1
if(g_nPutGiftNumPerSecond>=g_hostGiftlimit)与阈值进行比较
{
nIsFilter=1;超过阈值,需要过滤
}
}else
{
g_nPutGiftNumPerSecond=0;超过1秒,清空上一个1秒的礼物统计数量
同时将此值通知应用层,告诉当前1秒钟收到的低级礼物数量。
g_nPrevCourTickCount=nCourTickCount;将当前时刻赋值为下一个1秒的开始统计时间。
}
从而当nIsFilter的值为0是表示不需要丢弃的礼物,否则为1表示是需要丢弃的礼物。
编写线程的执行函数。
线程执行函数逻辑主要是不断的收取礼物,然后对礼物进行判断,是放入高级礼物队列,还是放入低级礼物队列,放入低级礼物队列则需要对每秒钟数量进行控制。
首先定义2个队列,一个是高级礼物队列,一个是低级礼物队列。
Cqueue queueVip;//高级礼物队列。
Cqueue queue;//低级礼物队列。
thread_create(&Thread,message_received);
创建一个线程,其执行函数是message_received。
Vodid message_received()
{
While(true)
设置while循环不断的收取网络消息。
{
Message*pMessage=Socket->recv();
通过网络套接字来收取网络数据包。
然后判断消息的类型,如果是bgd类型则说明是礼物消息。
然后对礼物消息判断bg字段,是否是高级礼物。
If(bg==1)//高级礼物。
queueVip.addGift(pMessage);
else
{
需要对1秒钟计算来判断是否存入队列。按照步骤1的过滤规则来进行。queue.addGift(pMessage);
}
}
}
设置线程的执行函数取礼物消息给应用层展示。
thread_create(&Thread,getmessage);
创建一个线程,其执行函数是getmessage。
Void getmessage()
{
While(true)
{
Message*pMessage=queueVip->getGift();
Message*pMessage2=queue->getGift();
然后将消息pMessage和pMessage2推送到应用层进行显示。
g_nPutGiftNumPerSecond也会告知应用层,显示当前1秒钟低级礼物的数量。
}
}
至此就实现了客户端收到服务器的礼物消息进行丢弃判断的逻辑。
实施例2
本实施例中的互动消息的消息类型为弹幕消息。
主播端会收到各种各样的弹幕信息,包括一些主播的贵族用户、直播间的房管、直播间的超管等观众,主播的高级粉丝,以及普通观众。由于弹幕降级功能本身也会消耗CPU资源,为了减少CPU的消耗,本文将弹幕降级的功能做到底层库中,从而减少CPU消耗。本文会设置一个弹幕队列,将收到服务器的所有弹幕放入队列中,同时设置每秒钟弹幕队列的数量阈值,当超过阈值时,会对弹幕的类型进行判断,首先对于高级弹幕则不丢弃,直接放入队列中,然后对于普通弹幕则优先丢弃,不放入队列中。而同一时刻弹幕队列会有另一个阈值,当队列弹幕超过阈值时,所有弹幕都将会丢弃,否则存入队列。从而通过控制队列每秒中存入的弹幕数量来控制主播端弹幕显示的数量,从而即可以让主播看到关键弹幕,同时也可以减少主播端CPU消耗,使得直播更为流畅。同时为了提供更多的灵活性,本文将阈值放到服务器进行设置,同时也给主播提供设置按钮,主播可以设置弹幕量多,弹幕量少,使得对弹幕的控制更为灵活。
本发明的实现方案包括如下步骤:
(1)服务器对每个主播配置2个阈值。
服务器会对每个主播设置2个阈值,其中第一阈值是用于设置主播端,1秒钟最多能显示普通弹幕的数量,第二阈值是用于设置主播端同一时刻弹幕队列中同时存储的所有弹幕数量。
具体的,可以根据所述直播间的主播客户端触发的配置请求,确定所述第一阈值和所述第二阈值。
(2)给主播端一个设置普通弹幕的设置开关。
为了提供更灵活的配置,可以提供主播端一个设置界面用于设置普通弹幕阈值的数值,提供3个选项,一个是全量普通弹幕,一个是无普通弹幕,一个是适中普通弹幕。本文对所有主播默认使用适中的弹幕配置。主播设置后则会将设置的信息保存到服务器中。
(3)当主播端启动时从服务器拉取阈值信息。
当主播端启动开始直播时,则会从PHP服务器拉取阈值信息。并将阈值透传给底层弹幕库信息处理逻辑中。
(4)主播端编写一个接收弹幕信息的线程和队列。
在主播客户端中,设置一个队列用于存储收到服务器的所有弹幕消息,并且编写一个线程不断的通过网络Socket来从弹幕服务器收取弹幕消息。该线程不断的收取弹幕,收到弹幕后进行后续的弹幕过滤,如果不需要过滤的则存储到弹幕队列中,否则需要过滤的弹幕则丢弃掉不进行显示。
设置一个弹幕队列,该队列则可以被接收弹幕线程投递弹幕,其他线程则会从队列中取弹幕进行屏幕显示。具体使用STL容器的list容器,list容器是一个链表,可以高效的从链表中插入弹幕和取出弹幕操作。对于每个弹幕则是服务器下发的弹幕消息内容。具体队列实现如下:
生成一个队列的类,该类有成员变量list<Danmu>用于存储弹幕,并且设置接口来提供从队列中取弹幕和从队列中插入弹幕的操作。具体的类如下:
Class Cqueue
{
Public:
Danmu*GetDanmu()
{
Lock(m_mutex);
对互斥变量加锁,防止其他线程同时对该队列增加弹幕和取弹幕。
If(m_listDanmu.empt())
{return NULL;}
如果队列中没有弹幕则返回的弹幕为空。
Danmu*pDanmu=m_listDanmu.front();
从任务队列的头部取出一个弹幕。
m_listDanmu.pop_front();
将头部被取出的弹幕从队列中删除掉。
}
Void AddDanmu(Danmu*pDanmu)
{
Lock(m_mutex);
对互斥变量加锁,防止其他线程同时对该队列增加弹幕。
m_listDanmu.push_back(pDanmu);
往任务队列中添加一个弹幕,并且加入到弹幕队列的最尾部。
}
Private:
List<Danmu*>m_listDanmu;
定义一个list容器来存储弹幕Danmu。
Mutex m_mutex;
定义一个互斥变量来保障对弹幕队列的操作是线程安全的,当多个线程同时对一个队列进行操作时,互斥变量保障操作按照先后顺序进行。
}
(5)主播端设置一个线程不断的从队列中取弹幕给到应用层进行显示。
在主播端,设置另一个线程,用于不断的从弹幕队列中取出弹幕信息,然后将弹幕信息推送到主播端的应用层逻辑中,在应用层逻辑中则对弹幕再主播屏幕中进行显示弹幕信息。具体则是不断的从队列Cqueue中调用函数Danmu*GetDanmu()来取出弹幕并投递给应用层进行屏幕展示。
(6)主播端进行弹幕降级。
主播端的接收服务器消息的线程中,会不断的收到服务器的网络消息,首先则需要判断消息类型,然后只对消息为弹幕的消息执行过滤逻辑。具体实现如下:
服务器发送给客户端的消息都会具有消息类型字段,通过消息类型则可以判断当前的消息是不是弹幕消息。
具体的一条弹幕消息如下:
type@=chatmsg/rid@=3256/ct@=1/uid@=2145632/txt@=666/rg@=1/bg@=5/nl@=0/
其中chatmsg则表示当前的消息类型是弹幕消息,后续的字段rid则表示房间号,txt则表示弹幕内容,rg表示房间级别管理,bg表示平台级别管理,nl字段表示是否是贵族弹幕。后续则对弹幕消息依据设置的阈值来进行过滤。
对收到的弹幕进行普通弹幕的判断逻辑如下:
取出弹幕的几个关键字段,包括rg、bg、nl字段。
然后依次判断,如果rg>=2则表示是高级弹幕,如果bg>=2表示是高级弹幕,如果nl>=1则表示是高级弹幕。否则是低等级弹幕消息。
1、主播设置的阈值是全量弹幕。
如果主播设置的阈值是全量弹幕类型,则不需要过滤直接将弹幕加入弹幕队列中。
2、主播设置的阈值是全部过滤。
则接收服务器弹幕消息的线程则会对接收的弹幕进行判断,如果是低等级弹幕则直接丢弃掉,不会放到线程队列给应用层进行显示。
3、主播设置的阈值是适中。
则需要依据设置的阈值来对弹幕进行1秒钟内收到的弹幕进行判断。具体实现如下:
设置的普通弹幕每秒钟最多阈值存储在变量g_hostdanmulimit。
定义一个变量用于存储当前1秒钟内收到的普通弹幕数量uint32_tg_nPutDanmuNumPerSecond=0;
定义一个变量用于存储上一个1秒钟的时刻的毫秒数uint64_tg_nPrevCourTickCount=0;。
首先获取当前的时刻的毫秒数。
uint64_t nCourTickCount=nowmsecond();
表示当前收到的弹幕的毫秒数。
uint64_t nElapse=nCourTickCount-g_nPrevCourTickCount;
表示当前弹幕与上一个1秒的时间差值nElapse。
定义变量int nIsFilter=0;表示此弹幕是否需要过滤,初始为0表示不需要过滤。
if(nElapse<1000)时间小于1秒
{
++g_nPutDanmuNumPerSecond;弹幕数量加1
if(g_nPutDanmuNumPerSecond>=g_hostdanmulimit)与阈值进行比较
{
nIsFilter=1;超过阈值,需要过滤
}
}else
{
g_nPutDanmuNumPerSecond=0;超过1秒,清空上一个1秒的弹幕统计数量
g_nPrevCourTickCount=nCourTickCount;将当前时刻赋值为下一个1秒的开始统计时间。
}
从而当nIsFilter的值为0是表示不需要丢弃的弹幕,否则为1表示是需要丢弃的弹幕。
(7)队列同一时刻阈值判断逻辑。
本发明对同一时刻存储到线程队列中的弹幕设置了一个第二阈值,以防止同一时刻弹幕量巨大导致主播端消耗大量CPU和同时显示大量弹幕,所以对存入队列中的弹幕进行判断。具体实现如下:
对于队列来说,设置一个计数,每存储一个弹幕则计数加1,而每从队列中取出一个弹幕则计数减1,每次存入弹幕时则会判断当前的计数是否大于设置的阈值,如果大于则将弹幕消息丢弃,不存入队列中,否则将弹幕存入队列中进行应用层展示,实现了客户端对同一时刻的弹幕队列进行阈值判断。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图2示意性示出了本发明一个实施例的视频直播中互动消息的处理装置的结构示意图。参照图2,本发明实施例的视频直播中互动消息的处理装置具体包括接收模块201、第一判定模块202、存储模块203、第二判定模块204、过滤模块205以及推送模块206,其中:
接收模块201,用于接收服务器发送的互动消息,所述互动消息中携带有消息发送用户当前所在直播间的直播间标识和消息等级信息;
第一判定模块202,用于根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息;
存储模块203,用于当第一判定模块的判定结果为所述互动消息为指定的高级互动消息时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
第二判定模块204,用于当第一判定模块的判定结果为所述互动消息不是指定的高级互动消息时,判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否小于预设的第一阈值,所述第一阈值表示预设显示时段内所述消息队列中存储的除所述高级互动消息以外的其他互动消息的最大消息数量;
所述存储模块203,还用于当所述第二判定模块的判定结果为其他互动消息的消息数量小于所述第一阈值时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
过滤模块205,用于当所述第二判定模块的判定结果为其他互动消息的消息数量大于或等于所述第一阈值时,丢弃所述互动消息;
推送模块206,用于将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。
本发明实施例中,所述第一判定模块202,具体用于判定当前显示时段内所述消息队列中互动消息的消息总数量是否等于第二阈值,若所述消息队列中互动消息的消息总数量等于第二阈值,则根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,所述第二阈值表示预设显示时段内消息队列中互动消息的最大消息数量。
进一步地,在所述接收服务器发送的互动消息之前,所述装置还包括附图中未示出的配置模块,所述配置模块,用于根据所述直播间的主播客户端触发的配置请求,确定所述第一阈值和所述第二阈值。
本发明实施例中,所述互动消息中还携带有消息类型信息。
相应的,所述装置还包括附图中未示出的第三判定模块和统计模块,其中:
第三判定模块,用于在所述第一判定模块根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息之前,根据所述消息类型信息判定所述互动消息是否为礼物消息;
统计模块,用于当所述第三判定模块的判定结果为所述互动消息为礼物消息时,在所述丢弃所述互动消息之后,统计当前显示时段内接收到的除所述高级互动消息以外的其他互动消息的消息总数量;
相应的,所述推送模块206,还用于将当前显示时段内所述其他互动消息的消息总数量推送到所述直播间的主播客户端进行显示。
进一步地,所述消息队列包括用于存储高级互动消息的第一子消息队列和用于存储除高级互动消息以外的其他互动消息的第二子消息队列;
所述统计模块,具体用于统计所述第二子消息队列的消息数量,得到当前显示时段内所述其他互动消息的消息总数量。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例提供的视频直播中互动消息的处理方法及装置,通过设置显示时段内直播间对应的消息队列中存储的除高级互动消息以外的其他互动消息(低级互动消息)的最大消息数量,并在当消息队列中除高级互动消息以外的其他互动消息的消息数量等于预设的第一阈值时,对直播时收到的除高级互动消息以外的其他互动消息进行丢弃,实现对低级互动消息的过滤,在不影响主播对满足要求的高级用户的互动消息的显示及观看的同时,保证主播端的直播流畅性,提升直播效果和用户体验。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。
本实施例中,所述视频直播中互动消息的处理装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
图3为本发明实施例提供的计算机设备的示意图。本发明实施例提供的计算机设备,包括存储器301、处理器302及存储在存储器301上并可在处理器302上运行的计算机程序,所述处理器302执行所述计算机程序时实现上述各个视频直播中互动消息的处理方法实施例中的步骤,例如图1所示的步骤。或者,所述处理器302执行所述计算机程序时实现上述各视频直播中互动消息的处理装置实施例中各模块/单元的功能,例如图2所示的接收模块201、第一判定模块202、存储模块203、第二判定模块204、过滤模块205以及推送模块206。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述视频直播中互动消息的处理装置中的执行过程。例如,所述计算机程序可以被分割成接收模块201、第一判定模块202、存储模块203、第二判定模块204、过滤模块205以及推送模块206,各模块具体功能如下:接收模块201,用于接收服务器发送的互动消息,所述互动消息中携带有消息发送用户当前所在直播间的直播间标识和消息等级信息;第一判定模块202,用于根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息;存储模块203,用于当第一判定模块的判定结果为所述互动消息为指定的高级互动消息时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;第二判定模块204,用于当第一判定模块的判定结果为所述互动消息不是指定的高级互动消息时,判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否小于预设的第一阈值,所述第一阈值表示预设显示时段内所述消息队列中存储的除所述高级互动消息以外的其他互动消息的最大消息数量;所述存储模块203,还用于当所述第二判定模块的判定结果为其他互动消息的消息数量小于所述第一阈值时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;过滤模块205,用于当所述第二判定模块的判定结果为其他互动消息的消息数量大于或等于所述第一阈值时,丢弃所述互动消息;推送模块206,用于将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图3仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种视频直播中互动消息的处理方法,其特征在于,所述方法包括:
接收服务器发送的互动消息,所述互动消息中携带有消息发送用户当前所在直播间的直播间标识和消息等级信息;
根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息;
若所述互动消息为指定的高级互动消息,则根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
否则判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否小于预设的第一阈值,若所述其他互动消息的消息数量小于所述第一阈值,则根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列,否则丢弃所述互动消息,所述第一阈值表示预设显示时段内所述消息队列中存储的除所述高级互动消息以外的其他互动消息的最大消息数量;
将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。
2.根据权利要求1所述的方法,其特征在于,所述根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,包括:
判定当前显示时段内所述消息队列中互动消息的消息总数量是否等于第二阈值,若所述消息队列中互动消息的消息总数量等于第二阈值,则根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,所述第二阈值表示预设显示时段内消息队列中互动消息的最大消息数量。
3.根据权利要求2所述的方法,其特征在于,在所述接收服务器发送的互动消息之前,所述方法还包括:
根据所述直播间的主播客户端触发的配置请求,确定所述第一阈值和所述第二阈值。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述互动消息中还携带有消息类型信息;
在所述根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息之前,所述方法还包括:
根据所述消息类型信息判定所述互动消息是否为礼物消息;
若所述互动消息为礼物消息时,则在所述丢弃所述互动消息之后,所述方法还包括:
将当前显示时段内接收到的除所述高级互动消息以外的其他互动消息的消息总数量,并将当前显示时段内所述其他互动消息的消息总数量推送到所述直播间的主播客户端进行显示。
5.根据权利要求4所述的方法,其特征在于,所述消息队列包括用于存储高级互动消息的第一子消息队列和用于存储除高级互动消息以外的其他互动消息的第二子消息队列;
统计所述第二子消息队列的消息数量,得到当前显示时段内所述其他互动消息的消息总数量。
6.一种视频直播中互动消息的处理装置,其特征在于,所述装置包括:
接收模块,用于接收服务器发送的互动消息,所述互动消息中携带有消息发送用户当前所在直播间的直播间标识和消息等级信息;
第一判定模块,用于根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息;
存储模块,用于当第一判定模块的判定结果为所述互动消息为指定的高级互动消息时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
第二判定模块,用于当第一判定模块的判定结果为所述互动消息不是指定的高级互动消息时,判定所述消息队列中除所述高级互动消息以外的其他互动消息的消息数量是否小于预设的第一阈值,所述第一阈值表示预设显示时段内所述消息队列中存储的除所述高级互动消息以外的其他互动消息的最大消息数量;
所述存储模块,还用于当所述第二判定模块的判定结果为其他互动消息的消息数量小于所述第一阈值时,根据所述直播间标识将所述互动消息存储到所述直播间对应的消息队列;
过滤模块,用于当所述第二判定模块的判定结果为其他互动消息的消息数量大于或等于所述第一阈值时,丢弃所述互动消息;
推送模块,用于将当前显示时段内所述消息队列中的互动消息推送到所述直播间的主播客户端进行显示。
7.根据权利要求6所述的装置,其特征在于,所述第一判定模块,具体用于判定当前显示时段内所述消息队列中互动消息的消息总数量是否等于第二阈值,若所述消息队列中互动消息的消息总数量等于第二阈值,则根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息,所述第二阈值表示预设显示时段内消息队列中互动消息的最大消息数量。
8.根据权利要求6或7所述的装置,其特征在于,所述互动消息中还携带有消息类型信息;
所述装置还包括:
第三判定模块,用于在所述第一判定模块根据所述消息等级信息判定所述互动消息是否为指定的高级互动消息之前,根据所述消息类型信息判定所述互动消息是否为礼物消息;
统计模块,用于当所述第三判定模块的判定结果为所述互动消息为礼物消息时,在所述丢弃所述互动消息之后,统计当前显示时段内接收到的除所述高级互动消息以外的其他互动消息的消息总数量;
所述推送模块,还用于将当前显示时段内所述其他互动消息的消息总数量推送到所述直播间的主播客户端进行显示。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一项所述方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810155254.9A CN110191348B (zh) | 2018-02-23 | 2018-02-23 | 视频直播中互动消息的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810155254.9A CN110191348B (zh) | 2018-02-23 | 2018-02-23 | 视频直播中互动消息的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110191348A true CN110191348A (zh) | 2019-08-30 |
CN110191348B CN110191348B (zh) | 2022-02-22 |
Family
ID=67713427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810155254.9A Active CN110191348B (zh) | 2018-02-23 | 2018-02-23 | 视频直播中互动消息的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110191348B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110599263A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 用户互动数据处理方法、装置、存储介质和计算机设备 |
CN111083508A (zh) * | 2019-12-12 | 2020-04-28 | 广州华多网络科技有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN111209071A (zh) * | 2020-01-06 | 2020-05-29 | 广州虎牙科技有限公司 | 信息配置方法、装置、服务器及存储介质 |
CN111294609A (zh) * | 2020-03-13 | 2020-06-16 | 上海万面智能科技有限公司 | 直播内容显示方法、装置、电子设备及可读存储介质 |
CN111339158A (zh) * | 2020-02-21 | 2020-06-26 | 北京字节跳动网络技术有限公司 | 一种进行信息处理的方法、装置、电子设备及存储介质 |
CN111416765A (zh) * | 2020-03-20 | 2020-07-14 | 北京字节跳动网络技术有限公司 | 一种互动消息处理的方法及装置 |
CN112199174A (zh) * | 2020-09-30 | 2021-01-08 | 北京字节跳动网络技术有限公司 | 消息发送的控制方法、装置、电子设备及计算机可读存储介质 |
CN112492381A (zh) * | 2019-09-11 | 2021-03-12 | 北京字节跳动网络技术有限公司 | 信息显示方法、装置及电子设备 |
CN112882847A (zh) * | 2021-02-24 | 2021-06-01 | 海南车智易通信息技术有限公司 | 一种弹幕消息处理方法、装置及系统 |
CN113596492A (zh) * | 2021-07-26 | 2021-11-02 | 上海哔哩哔哩科技有限公司 | 网络直播中的礼物展示方法和系统 |
CN113645508A (zh) * | 2021-08-10 | 2021-11-12 | 北京读我科技有限公司 | 一种消息输出方法、装置及系统 |
CN114071175A (zh) * | 2021-11-16 | 2022-02-18 | 上海哔哩哔哩科技有限公司 | 消息的内存对齐方法和系统 |
CN115334331A (zh) * | 2022-08-23 | 2022-11-11 | 苏州青颖飞帆软件科技有限公司 | 一种教学直播的通讯方法、设备及存储介质 |
CN113573105B (zh) * | 2021-07-01 | 2023-10-03 | 广州方硅信息技术有限公司 | 基于霸屏虚拟礼物的直播互动方法及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106101848A (zh) * | 2016-06-08 | 2016-11-09 | 维沃移动通信有限公司 | 一种弹幕显示方法及电子设备 |
CN106302469A (zh) * | 2016-08-18 | 2017-01-04 | 北京奇虎科技有限公司 | 一种控制信息显示的方法和装置 |
CN107231350A (zh) * | 2017-05-24 | 2017-10-03 | 北京潘达互娱科技有限公司 | 一种消息处理方法与装置 |
CN107302489A (zh) * | 2017-06-02 | 2017-10-27 | 北京潘达互娱科技有限公司 | 消息展示方法及装置 |
CN107423128A (zh) * | 2017-07-31 | 2017-12-01 | 北京京东尚科信息技术有限公司 | 信息处理方法及其系统 |
-
2018
- 2018-02-23 CN CN201810155254.9A patent/CN110191348B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106101848A (zh) * | 2016-06-08 | 2016-11-09 | 维沃移动通信有限公司 | 一种弹幕显示方法及电子设备 |
CN106302469A (zh) * | 2016-08-18 | 2017-01-04 | 北京奇虎科技有限公司 | 一种控制信息显示的方法和装置 |
CN107231350A (zh) * | 2017-05-24 | 2017-10-03 | 北京潘达互娱科技有限公司 | 一种消息处理方法与装置 |
CN107302489A (zh) * | 2017-06-02 | 2017-10-27 | 北京潘达互娱科技有限公司 | 消息展示方法及装置 |
CN107423128A (zh) * | 2017-07-31 | 2017-12-01 | 北京京东尚科信息技术有限公司 | 信息处理方法及其系统 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112492381B (zh) * | 2019-09-11 | 2023-05-30 | 北京字节跳动网络技术有限公司 | 信息显示方法、装置及电子设备 |
CN112492381A (zh) * | 2019-09-11 | 2021-03-12 | 北京字节跳动网络技术有限公司 | 信息显示方法、装置及电子设备 |
CN110599263B (zh) * | 2019-09-26 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 用户互动数据处理方法、装置、存储介质和计算机设备 |
CN110599263A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 用户互动数据处理方法、装置、存储介质和计算机设备 |
CN111083508A (zh) * | 2019-12-12 | 2020-04-28 | 广州华多网络科技有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN111209071A (zh) * | 2020-01-06 | 2020-05-29 | 广州虎牙科技有限公司 | 信息配置方法、装置、服务器及存储介质 |
CN111339158A (zh) * | 2020-02-21 | 2020-06-26 | 北京字节跳动网络技术有限公司 | 一种进行信息处理的方法、装置、电子设备及存储介质 |
CN111339158B (zh) * | 2020-02-21 | 2023-05-16 | 北京字节跳动网络技术有限公司 | 一种进行信息处理的方法、装置、电子设备及存储介质 |
CN111294609A (zh) * | 2020-03-13 | 2020-06-16 | 上海万面智能科技有限公司 | 直播内容显示方法、装置、电子设备及可读存储介质 |
CN111416765A (zh) * | 2020-03-20 | 2020-07-14 | 北京字节跳动网络技术有限公司 | 一种互动消息处理的方法及装置 |
WO2022068488A1 (zh) * | 2020-09-30 | 2022-04-07 | 北京字节跳动网络技术有限公司 | 消息发送的控制方法、装置、电子设备及计算机可读存储介质 |
CN112199174A (zh) * | 2020-09-30 | 2021-01-08 | 北京字节跳动网络技术有限公司 | 消息发送的控制方法、装置、电子设备及计算机可读存储介质 |
CN112882847A (zh) * | 2021-02-24 | 2021-06-01 | 海南车智易通信息技术有限公司 | 一种弹幕消息处理方法、装置及系统 |
CN113573105B (zh) * | 2021-07-01 | 2023-10-03 | 广州方硅信息技术有限公司 | 基于霸屏虚拟礼物的直播互动方法及计算机设备 |
CN113596492A (zh) * | 2021-07-26 | 2021-11-02 | 上海哔哩哔哩科技有限公司 | 网络直播中的礼物展示方法和系统 |
CN113645508A (zh) * | 2021-08-10 | 2021-11-12 | 北京读我科技有限公司 | 一种消息输出方法、装置及系统 |
CN113645508B (zh) * | 2021-08-10 | 2023-09-19 | 北京读我科技有限公司 | 一种消息输出方法、装置及系统 |
CN114071175A (zh) * | 2021-11-16 | 2022-02-18 | 上海哔哩哔哩科技有限公司 | 消息的内存对齐方法和系统 |
CN114071175B (zh) * | 2021-11-16 | 2023-07-25 | 上海哔哩哔哩科技有限公司 | 消息的内存对齐方法和系统 |
CN115334331A (zh) * | 2022-08-23 | 2022-11-11 | 苏州青颖飞帆软件科技有限公司 | 一种教学直播的通讯方法、设备及存储介质 |
CN115334331B (zh) * | 2022-08-23 | 2023-09-22 | 苏州青颖飞帆软件科技股份有限公司 | 一种教学直播的通讯方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110191348B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110191348A (zh) | 视频直播中互动消息的处理方法及装置 | |
US10873769B2 (en) | Live broadcasting method, method for presenting live broadcasting data stream, and terminal | |
CN108174305B (zh) | 直播聊天室的消息处理方法及装置 | |
CN106487781B (zh) | 基于直播的资源数据处理方法、装置和系统 | |
US20220141521A1 (en) | Gift display method and system in web-based live broadcast | |
CN106846040A (zh) | 一种直播间中虚拟礼物显示方法和系统 | |
CN110099134B (zh) | 视频文件下载方法、装置、电子设备及存储介质 | |
CN110830735B (zh) | 一种视频生成方法、装置、计算机设备和存储介质 | |
CN106161219A (zh) | 消息处理方法及装置 | |
CN109819268B (zh) | 视频直播中的直播间播放控制方法、装置、介质及设备 | |
CN111526406A (zh) | 直播界面显示方法、装置、终端及存储介质 | |
CN109144652B (zh) | 一种视图显示方法、装置、电子设备及存储介质 | |
CN106162232A (zh) | 视频播放控制方法及装置 | |
CN110856011A (zh) | 一种分组进行直播互动的方法、电子设备及存储介质 | |
WO2020007266A1 (zh) | 动态分享消息的管理方法、管理设备、存储介质及终端 | |
CN109218653A (zh) | 一种视频会议的多窗口显示方法、装置、设备和系统 | |
CN112199174A (zh) | 消息发送的控制方法、装置、电子设备及计算机可读存储介质 | |
CN113873314A (zh) | 直播互动方法、装置、可读介质及电子设备 | |
CN112752037A (zh) | 混合音视频流的处理方法和装置 | |
WO2012155702A1 (zh) | 一种业务密钥更新的方法、系统及业务处理服务器 | |
CN116193206B (zh) | 优质内容筛选方法、装置、终端设备及存储介质 | |
US20230055968A1 (en) | Filtering group messages | |
CN115378878B (zh) | Cdn的调度方法、装置、设备及存储介质 | |
CN109309859A (zh) | 直播间界面展示方法、架构及相关方法、装置及设备 | |
CN109547630A (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 |