CN109274988B - 弹幕消息分发方法、装置、设备及存储介质 - Google Patents
弹幕消息分发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109274988B CN109274988B CN201810948508.2A CN201810948508A CN109274988B CN 109274988 B CN109274988 B CN 109274988B CN 201810948508 A CN201810948508 A CN 201810948508A CN 109274988 B CN109274988 B CN 109274988B
- Authority
- CN
- China
- Prior art keywords
- bullet screen
- message
- target
- secondary distributor
- distribution
- 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/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
-
- 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/254—Management at additional data server, e.g. shopping server, rights management server
-
- 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/482—End-user interface for program selection
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种弹幕消息分发方法、装置、设备及存储介质。该方法包括:依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;依据待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息;按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,次级分发器对象集合为链表结构;调用目标次级分发器对象中的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象,其中,第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得。通过上述技术方案,实现了按序、高效且及时地将弹幕消息分发至各个消息接收器对象。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种弹幕消息分发方法、装置、设备及存储介质。
背景技术
在诸如斗鱼的音视频播放/直播应用软件中,会大量使用弹幕消息。通常,这些弹幕消息是由能够传输及处理弹幕消息的服务器(即弹幕服务器)传输至Android客户端中的音视频播放/直播应用软件,并由应用软件中的弹幕分发模块逐条分发给需要使用弹幕消息的各个消息接收器对象,如视图对象、业务控制器对象或数据管理器对象等。
但是,当弹幕服务器发送的弹幕消息过多时,现有的弹幕分发模式便会使得弹幕消息分发效率下降。并且,在弹幕服务器发送弹幕消息的速度大于弹幕分发速度时,甚至出现弹幕消息丢失或分发错误的情况。
发明内容
本发明实施例提供一种弹幕消息分发方法、装置、设备及存储介质,以实现按序、高效且及时地将弹幕消息分发至音视频播放/直播应用软件中的各个消息接收器对象。
第一方面,本发明实施例提供了一种弹幕消息分发方法,包括:
依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;
依据所述待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息;
按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,所述次级分发器对象集合为链表结构;
调用目标次级分发器对象中的第一弹幕分发函数,将所述目标弹幕消息分发至所述目标次级分发器对象,以使所述目标次级分发器对象将所述目标弹幕消息分发至各消息接收器对象,其中,所述第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得。
第二方面,本发明实施例还提供了一种弹幕消息分发装置,该装置包括:
待分发弹幕消息确定模块,用于依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;
目标弹幕消息确定模块,用于依据所述待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息;
目标次级分发器对象确定模块,用于按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,所述次级分发器对象集合为链表结构;
弹幕消息分发模块,用于调用目标次级分发器对象中的第一弹幕分发函数,将所述目标弹幕消息分发至所述目标次级分发器对象,以使所述目标次级分发器对象将所述目标弹幕消息分发至各消息接收器对象,其中,所述第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的弹幕消息分发方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的弹幕消息分发方法。
本发明实施例通过设置一个顶级分发器对象和预设数量个次级分发器对象,将音视频播放/直播应用软件中的弹幕分发模式设计为顶级分发器对象-次级分发器对象-消息接收器对象的多层级分发模式,使得多个次级分发器对象同时分担单个弹幕分发器对象的弹幕消息分发压力,从而能够更加及时地将弹幕消息进行分发,为提高弹幕消息分发效率提供基础。通过在顶级分发器对象中设置线性顺序结构的消息列表,可以有效避免弹幕消息的丢失,且能够保证各个弹幕消息的分发顺序。通过按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,能够使得各个次级分发器对象均匀地接收并分发弹幕消息。通过将次级分发器对象集合设置为链表结构,能够实现集合元素的快速插入或删除,从而提高目标次级分发器对象获取的效率,进而提高弹幕消息分发效率;并且链表中元素的顺序性不需要设置额外的变量进行维护,提高目标次级分发器对象获取的容错性。通过调用目标次级分发器对象中继承自第一弹幕分发协议的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象,能够将目标弹幕消息由顶级分发器对象分发至目标次级分发器对象,并进一步分发至各消息接收器对象,减少了弹幕消息分发过程中的分发阻塞,实现了待分发弹幕消息的高效分发。
附图说明
图1是本发明实施例一中的一种弹幕消息分发方法的流程图;
图2是本发明实施例二中的一种弹幕消息分发方法的流程图;
图3是本发明实施例三中的一种弹幕消息分发装置的结构示意图;
图4是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的弹幕消息分发方法,可适用于Android客户端中的音视频播放/直播应用软件,将接收到的初始弹幕消息分发至各个消息接收器对象,尤其适用于初始弹幕消息数量较多,且初始弹幕消息的获取速度大于弹幕消息分发速度的情况。该方法可以由弹幕消息分发装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有音视频播放/直播应用软件的设备中,例如典型的是用户终端设备,例如手机、平板电脑或智能电视等。参见图1,本实施例的方法具体包括如下步骤:
S110、依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息。
其中,初始弹幕消息是指顶级分发器对象获取的弹幕消息,例如可以是顶级分发器对象从弹幕服务器所获得的弹幕消息。这里顶级分发器对象是指对弹幕消息进行分发处理的上一层级的弹幕分发器的实例化对象。与顶级分发器对象相对设置的便是次级分发器对象,其是指对弹幕消息进行分发处理的下一层级的弹幕分发器的实例化对象。
预设弹幕分发规则是指预先设定的,进行弹幕消息分发的规则,例如可以是弹幕消息的数据类型、数据结构和数据大小等任一个或任意组合。待分发弹幕消息是指满足预设弹幕分发规则,且需要分发至次级分发器对象,并进一步分发至消息接收器对象的弹幕消息。这里消息接收器对象是指音视频播放/直播应用软件中需要接收弹幕消息的组件对象,例如可以是用于弹幕消息显示的视图对象,也可以是用于对弹幕消息进行数据处理的业务控制器对象,还可以是对弹幕消息进行存储或传输的数据管理器对象。
具体地,顶级分发器对象从弹幕服务器中获取初始弹幕消息。该初始弹幕消息通常是经过加密处理及数据封装等通信处理的弹幕消息,故在获取初始弹幕消息之后,顶级分发器对象对其进行诸如解密和数据类型转换等处理,以获得满足预设弹幕分发规则的待分发弹幕消息。
S120、依据待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息。
其中,消息列表是指存储未分发的待分发弹幕消息(即缓存弹幕消息)的集合,其设置在顶级分发器对象中,且数据结构是线性顺序结构,例如可以是堆栈或数组,优选是具有先进先出特性的队列,这样设置的目的是为了保证弹幕消息分发过程中弹幕消息的顺序性及缓存弹幕消息顺序性存取的便捷性。例如消息列表queueList定义及初始化代码可以为:private Queue<Message>queueList=new Queue<Message>(),这里Message是弹幕消息的抽象表示。目标弹幕消息是指本次分发操作所需要分发的待分发弹幕消息。
具体地,顶级分发器对象根据消息列表中是否存储缓存弹幕消息,即消息列表是否为空,来确定本次分发操作的目标弹幕消息是待分发弹幕消息还是缓存弹幕消息。如果消息列表中未存储缓存弹幕消息,即消息列表为空,那么可以将待分发弹幕消息确定为目标弹幕消息。反之,如果消息列表中存储有缓存弹幕消息,那么按照弹幕消息分发及处理的顺序性,此时不能够直接对待分发弹幕消息进行分发,则需要从消息列表中获取一条缓存弹幕消息,将其作为目标弹幕消息。
S130、按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象。
其中,顺序选择规则是指是指按照集合中元素的排序顺序挨个选取对象的规则。次级分发器对象集合是指存储各个次级分发器对象的集合,其是一个全局集合。示例性地,次级分发器对象集合为链表结构。由于顶级分发器对象需将目标弹幕消息分发至次级分发器对象,而本发明实施例中的顶级分发器对象和次级分发器对象分别布设在不同的功能模块中,故两者之间的通信需要通过预先定义的跨模块组件间通信协议,即后续将说明的第一弹幕分发协议IMessage。那么,次级分发器对象集合中存储的各个次级分发器对象应当是继承了第一弹幕分发协议的协议对象,其既是次级分发器对象,又是协议对象,这样才可实现目标弹幕消息的分发。可以理解,次级分发器对象集合的数据类型应当是协议对象IMessage类型。
示例性地,次级分发器对象集合通过调用集合获取函数预先获得。这里集合获取函数是顶级分发器对象中预先定义的,用于获取一个集合的函数。具体地,由于本发明实施例中次级分发器对象的数量是预先设定的,那么次级分发器对象集合在后续的过程中将不会再改变,故顶级分发器对象只需要在执行本实施例的各个步骤之前,获取一次次级分发器对象集合即可。具体实施时,顶级分发器对象调用集合获取函数getSecondDanmuSender,获得全局的次级分发器对象集合。
目标次级分发器对象是指目标弹幕消息对应的次级分发器对象,即目标弹幕消息需要分发至该目标次级分发器对象,其是从次级分发器对象集合中获得,故也是一个协议对象。
具体地,顶级分发器对象按照次级分发器对象集合中各个次级分发器对象的存储顺序,每次挨个选择一个次级分发器对象作为目标次级分发器对象。在这种情况下,需要一种维护集合中元素选择顺序的策略,以确保每次选取的对象是上一次选取对象的下一个顺序性对象。这样能够均匀地将目标弹幕消息分发至各个次级分发器对象,从而避免某一个或某几个次级分发器对象承担过多的弹幕消息分发任务,造成弹幕消息分发阻塞。
S140、调用目标次级分发器对象中的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象。
其中,第一弹幕分发函数是用于进行弹幕消息分发的函数,其具体用于将弹幕消息从顶级分发器对象分发至次级分发器对象。示例性地,第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得。也就是说,次级分发器对象继承第一弹幕分发协议之后,除了其具有协议对象的属性之外,还获得了第一弹幕分发协议中的第一弹幕分发函数。例如第一弹幕分发函数可以定义为public void onMessage(String type,Message msg),这里函数参数type为字符串string类型的消息标识,msg为消息Message类型的消息体。消息标识是指能够标识弹幕消息的字符,其可以是数字、字母、符号及上述各种字符的任意组合,该消息标识应当是一条弹幕消息的唯一的、全局的标识。消息体是指弹幕消息的承载者,其内包含具体地弹幕消息内容。上述第一弹幕分发协议是一个透传式通信协议,详见后续说明。
具体地,顶级分发器对象将目标弹幕消息对应的消息标识type(即目标消息标识)和消息体msg作为函数输入参数,通过调用目标次级分发器对象内部的第一弹幕分发函数onMessage(String type,Message msg),将目标弹幕消息分发至目标次级分发器对象中。之后,目标次级分发器对象再将该目标弹幕消息分发至其对应的各个消息接收器对象中。
进一步地,目标次级分发器对象将目标弹幕消息分发至各消息接收器对象包括:目标次级分发器对象调用各消息接收器对象中的第二弹幕分发函数,将目标弹幕消息分发至各消息接收器对象。其中,第二弹幕分发函数与第一弹幕分发函数对应一致,只是第二弹幕分发函数是用于将弹幕消息从次级分发器对象分发至消息接收器对象的函数,其是第二弹幕分发协议的内部函数。第二弹幕分发函数为消息接收器对象继承预先定义的第二弹幕分发协议而获得。第二弹幕分发协议是次级分发器对象和消息接收器对象之间进行组件间通信的通信协议,其同样是一个透传式协议,故第二弹幕分发协议与第一弹幕分发协议对应一致。即第二弹幕分发协议通过如下方式预先定义:依据第一弹幕分发协议,定义第二弹幕分发协议及第二弹幕分发协议中的第二弹幕分发函数。具体实施时,目标次级分发器对象分别通过其所持有的各个消息接收器对象,调用其继承而获得的第二弹幕分发函数,将目标弹幕消息分发至各个消息接收器对象。该过程可以是串行执行,也可以是并行执行。
本实施例的技术方案,通过设置一个顶级分发器对象和预设数量个次级分发器对象,将音视频播放/直播应用软件中的弹幕分发模式设计为顶级分发器对象-次级分发器对象-消息接收器对象的多层级分发模式,使得多个次级分发器对象同时分担单个弹幕分发器对象的弹幕消息分发压力,从而能够更加及时地将弹幕消息进行分发,为提高弹幕消息分发效率提供基础。通过在顶级分发器对象中设置线性顺序结构的消息列表,可以有效避免弹幕消息的丢失,且能够保证各个弹幕消息的分发顺序。通过按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,能够使得各个次级分发器对象均匀地接收并分发弹幕消息。通过将次级分发器对象集合设置为链表结构,能够实现集合元素的快速插入或删除,从而提高目标次级分发器对象获取的效率,进而提高弹幕消息分发效率;并且链表中元素的顺序性不需要设置额外的变量进行维护,提高目标次级分发器对象获取的容错性。通过调用目标次级分发器对象中继承自第一弹幕分发协议的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象,能够将目标弹幕消息由顶级分发器对象分发至目标次级分发器对象,并进一步分发至各消息接收器对象,减少了弹幕消息分发过程中的分发阻塞,实现了待分发弹幕消息的高效分发。
在上述技术方案的基础上,初始弹幕消息的获取方式可以是Android客户端中的音视频播放/直播应用软件向弹幕服务器发送数据获取请求,弹幕服务器被动响应数据获取请求来获取;优选是通过Android客户端中预先建立的弹幕监听器接口对象及弹幕监听器接口对象中作为回调函数的消息传输函数,接收弹幕服务器中的弹幕库对象回调消息传输函数发送的弹幕消息,其中,弹幕监听器接口对象用于监听弹幕服务器中的弹幕库对象。也就是说,Android客户端从弹幕服务器获取弹幕消息是通过在Android客户端中设置弹幕监听器接口对象,对弹幕服务器中的弹幕库对象进行监听,为弹幕服务器发送弹幕消息至Android客户端提供接口,且弹幕监听器中包含回调函数onMessage(String type,Messagemsg),为弹幕服务器发送弹幕消息至Android客户端提供调用函数指针。当弹幕消息到达弹幕服务器时,触发弹幕监听事件,则弹幕服务器主动调用回调函数onMessage,即弹幕服务器通过回调函数的函数指针,将弹幕消息由弹幕监听器接口对象发送至Android客户端,Android客户端中的顶级分发器对象则可以及时地、被动地接收弹幕消息。
在上述技术方案的基础上,第一弹幕分发协议通过如下方式预先定义:依据待分发弹幕消息的弹幕消息获取协议,定义第一弹幕分发协议及第一弹幕分发协议中的第一弹幕分发函数。其中,弹幕消息获取协议是指Android客户端获取初始弹幕消息时所遵循的通信协议,根据上述说明可知弹幕消息获取协议是弹幕监听器及其内部所包含的回调函数。为了实现将目标弹幕消息由顶级分发器对象的直达式分发至各个次级分发器对象,本发明实施例中在各个次级分发器对象实例化之前预先进行了第一弹幕分发协议的实现。更进一步地,为了实现对弹幕消息的透传式分发,将第一弹幕分发协议确定为透传分发协议,具体可以是通过与Android客户端中弹幕消息获取协议采用一致的协议内部函数的形式来实现透传式分发的。具体实施时,根据初始弹幕消息的弹幕消息获取协议及其内部函数onMessage(String type,Message msg),定义第一弹幕分发协议IMessage及其内部函数——第一弹幕分发函数public void onMessage(String type,Message msg)。由此可以理解,上述所有继承第一弹幕分发函数的说明中,次级分发器对象对第一弹幕分发函数的继承实现过程便是回调第一弹幕分发函数。需要说明的是,第一弹幕分发协议优选在次级分发器类中定义,这样各个次级分发器对象可以便捷且快速地实现协议继承,进一步提高弹幕消息分发协议。另外,这样的设置便于开发人员查看协议定义,能够提高程序开发效率。
在上述技术方案的基础上,次级分发器对象集合通过如下步骤预先生成:依据第一弹幕分发协议创建次级分发器对象集合;在创建各次级分发器对象之后,各次级分发器对象分别通过协议继承关键字继承第一弹幕分发协议,获得各次级分发器协议对象;以各次级分发器协议对象为函数输入参数,分别调用次级分发器对象集合的集合元素添加函数,将各次级分发器协议对象添加至次级分发器对象集合。
其中,协议继承关键字是指Java语言中规定的进行接口继承的关键字implements。集合元素添加函数是指预先定义的,用于在链表的设定位置进行元素添加的函数,例如其输入参数可以是需要添加至链表的次级分发器对象和其需要添加的位置标识,则具体的函数实现可以是位置标识对应的链表中元素结点及待添加的元素结点的指针域的相关修改操作等。
具体地,根据第一弹幕分发协议IMessage对应的协议对象IMessage,创建集合元素数据类型为协议对象IMessage类型的次级分发器对象集合mSecondDanmuSenderList,并对该次级分发器对象集合进行初始化,例如其代码实现可以是private LinkedList<IMessage>mSecondDanmuSenderList=new LinkedList<IMessage>()。需要注意的是,本实施例中的次级分发器对象的数量是预先设定的,即设置有预设数量的次级分发器对象。那么在初始化次级分发器对象集合时,其集合容量应当是可以根据上述预设数量直接设定的。之后需要将次级分发器对象添加至初始化后的次级分发器对象集合,添加时机是各个次级分发器对象被实例化之后,在每个次级分发器对象的生命周期内,先通过协议继承关键字implements,使得各个次级分发器对象mSecondSender继承第一弹幕分发协议成为协议对象(即次级分发器协议对象)。然后,逐次调用次级分发器对象集合的集合元素添加函数,将各个次级分发器协议对象添加至次级分发器对象集合,生成包含了多个次级分发器协议对象的集合。应当理解的是,当次级分发器对象销毁时,需要将其相应的协议对象从次级分发器对象集合中删除,即在销毁次级分发器对象之前,以次级分发器协议对象为函数输入参数,调用从链表中删除特定元素的集合元素删除函数,将次级分发器协议对象从次级分发器对象集合中删除。这样设置的好处在于能够更好地维护次级分发器对象集合,且便于顶级分发器对象按序且快速地获取目标次级分发器对象。
实施例二
本实施例在上述实施例一的基础上,对“依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息”进行了进一步优化。在此基础上,还可以进一步对“依据待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息”进行优化。在上述基础上,还可以进一步对“按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象”进行优化。进一步地,还可以增加当前第一个元素结点更新的步骤。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的弹幕消息分发方法包括:
S201、依据初始弹幕消息确定目标消息标识。
具体地,根据实施例一的说明可知,初始弹幕消息是以type和msg两个字段发送至顶级分发器对象。具体实施时,上述两个字段均是以一个携带各种字符分隔符的长字符串的形式传输。那么,顶级分发器对象获得初始弹幕消息后,需要通过字符串拆分等方式解析上述初始弹幕消息的type字段,将字段中的各种字符分隔符去除,从而获得初始弹幕消息对应的目标消息标识。
S202、依据目标消息标识,通过开关语句Switch,确定目标消息标识对应的初始JavaBean对象。
其中,初始JavaBean对象是指实例化的JavaBean对象,其已经构建内部属性字段和相应的属性处理函数,但是还未填充具体的字段属性。需要说明的是,每个初始JavaBean对象的属性字段和属性处理函数都是不同的,故每个弹幕消息重构为JavaBean对象时,都需选择对应的初始JavaBean对象。
具体地,在执行本步骤的操作之前,预先构建不同弹幕消息对应的多个初始JavaBean对象,且将不同弹幕消息的消息标识对应于各个初始JavaBean对象,即针对每一个消息标识type构建一个对应的初始JavaBean对象,具体则可以是利用开关语句Switch,将每个type和对应的初始JavaBean对象赋值操作设置为一个case分支,代码实现大致为:{case type:对应的初始JavaBean对象赋值操作}。具体实施时,根据目标消息标识,确定其对应的开关语句Switch中的case语句,该case语句对应的初始JavaBean对象便为目标消息标识对应的初始JavaBean对象。
S203、依据初始JavaBean对象重构初始弹幕消息,获得目标JavaBean对象,作为待分发弹幕消息。
具体地,顶级分发器对象解析初始弹幕消息的msg字段,将字段中的各种字符分隔符去除。至此,顶级分发器对象获得初始弹幕消息对应的目标消息标识和消息体,也就是获得了初始弹幕消息对应的各个属性字段及其字段值。之后执行S202确定的对应case语句中的初始JavaBean对象赋值操作,即调用初始JavaBean对象中的属性写入函数set*,将各个字段值赋值给初始JavaBean对象中的相应属性字段,从而完成对初始JavaBean对象的赋值,获得目标JavaBean对象,其中*代表具体的属性字段。之后将该目标JavaBean对象作为待分发弹幕消息。需要说明的是,Message类是所有Bean类的父类,故目标JavaBean对象可以直接作为onMessage函数的消息体msg的实参进行传输。
S204、判断消息列表是否存储缓存弹幕消息。
具体地,通过将消息列表与空对象null进行比较的方式,即queueList==null,判断消息列表是否为空,即判断消息列表是否存储缓存弹幕消息。若存储缓存弹幕消息,则执行S206;反之,执行S205。
S205、将待分发弹幕消息确定为目标弹幕消息。
具体地,若消息列表中未存储有缓存弹幕消息,说明目前顶级分发器对象中没有积压下来的缓存弹幕消息。此时,如果先将待分发弹幕消息存储至消息列表作为缓存弹幕消息,而后再从其中获取缓存弹幕消息,就会执行一些多余操作,无疑会增加该待分发弹幕消息的流转耗时。所以,在这种情况下,本实施例直接将待分发弹幕消息确定为目标弹幕消息,以进一步缩短弹幕分发过程中的耗时。之后可执行S207及其后续的目标弹幕消息分发操作。
S206、将待分发弹幕消息存储至消息列表,并按序从消息列表中获取一条缓存弹幕消息作为目标弹幕消息。
具体地,若消息列表中存储有缓存弹幕消息,说明在待分发弹幕消息之前,顶级分发器对象中还有需要执行分发操作的缓存弹幕消息存在。此时,为了确保消息接收器对象中弹幕消息处理的顺序性,按序将待分发弹幕消息存储至消息列表中。以消息列表为队列结构为例,顶级分发器对象通过调用消息列表queueList的队列元素添加函数add(),将待分发弹幕消息存储至消息列表的队尾。
同时,为了提高弹幕消息的分发效率,顶级分发器对象需要从消息列表中获取一条缓存弹幕消息进行分发。具体实施时,仍以队列为例,顶级分发器对象调用队列头部元素获取函数peek(),从消息队列中获取一条缓存弹幕消息作为目标弹幕消息。根据队列特性,该目标弹幕消息会自动从消息列表中删除。但是,对于其他没有自动删除特性的数据结构而言,为了避免对同一条弹幕消息的重复处理,需要添加将上述作为目标弹幕消息的缓存弹幕消息从消息列表中删除的操作。此时,消息列表队头的缓存弹幕消息便是被删除的目标弹幕消息之后的第二个缓存弹幕消息。之后,执行S207。
S207、获取次级分发器对象集合中的当前第一个元素结点中的次级分发器对象,作为目标次级分发器对象。
具体地,顶级分发器对象获取次级分发器对象集合中的当前第一个元素结点的数据域中存储的次级分发器对象,将其作为目标次级分发器对象。也就是,顶级分发器对象在确定目标次级分发器对象时,始终从次级分发器对象集合的第一个元素结点中获取。并且,在每次执行该获取操作之后,应当适时地更新当前第一个元素结点。这样设置的好处在于,可以有效利用linkedlist链表快速插入和删除结点的特性,以达到目标次级分发器对象按序获取的目的,且能够更加简便地维护次级分发器对象集合中元素的获取顺序,进一步提高该过程的容错性。
S208、调用目标次级分发器对象中的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象。
S209、将次级分发器对象集合的头结点的指针域指向当前第二个元素结点。
其中,头结点是指链表的开始结点,且其数据域为空,指针域指向第一个元素结点。元素结点是指链表中数据域中有数据的结点。第一个元素结点则是指链表中第一个数据域不为空的结点。第二个元素结点则是与第一个元素结点有指向关系的下一个元素结点。
具体地,在顶级分发器对象将目标弹幕消息分发至目标次级分发器对象之后,需要更新当前第一个元素结点,以便下一次弹幕消息分发时,能够将其分发至顺序的下一个次级分发器对象。同时,为了保持各个次级分发器对象一直处于可接收目标弹幕消息的状态,不可将当前第一个元素结点直接删除,而是将其按序插入链表的最末端,以等待下一次被确定为目标次级分发器对象。这样,所有的次级分发器对象均处于在链表中循环移动的状况。
上述更新当前第一个元素结点的整体过程是:将当前第一个元素结点之后的当前第二个元素结点更新为当前第一个元素结点,而将当前第一个元素结点更新为链表的尾结点。具体实施时,顶级分发器对象将次级分发器对象集合的头结点的指针域从指向当前第一个元素结点,变更为指向当前第二个元素结点。例如,在更新之前,头结点的指针域指向当前第一个元素结点A,即Head->next=A;而当前第一个元素结点A的指针域指向当前第一个元素结点B,即A->next=B。那么,变更之后,头结点的指针域指向当前第二个元素结点,即Head->next=A->next。至此,将当前第二个元素结点更新为当前第一个元素结点。
S210、将当前第一个元素结点的指针域指向当前尾结点的指针域,并将当前尾结点的指针域指向当前第一个元素结点,以更新当前第一个元素结点和当前尾结点。
其中,尾结点是指链表中的结束结点,且其数据域有数据,指针域指向空对象null。
具体地,在改变头结点的指针域之后,需要进一步地将更新前的当前第一个元素结点变更为当前尾结点。具体实施时,将更新前的当前第一个元素结点的指针域A->next从指向当前第一个元素结点B,变更为指向当前尾结点N的指针域,即由A->next=B变更为A->next=null。之后,将更新前的当前尾结点N的指针域变更为指向更新前的当前第一个元素结点,即由N->next=null变更为N->next=A。至此,则将当前更新前的当前第一个元素结点变更为当前尾结点,而当前尾结点变更为倒数第二个元素结点。
本实施例的技术方案,通过目标消息标识和开关语句switch,能够快速确定待分发弹幕消息对应的初始JavaBean对象,从而快速获得具有高效的数据管理功能的JavaBean类型的待分发弹幕消息,进一步提高弹幕消息分发效率。通过获取次级分发器对象集合中第一个元素结点中次级分发器对象的方式,更加简便且快速地确定目标次级分发器对象,更进一步提高弹幕消息分发效率。通过将次级分发器对象集合的头结点的指针域指向当前第二个元素结点;将当前第一个元素结点的指针域指向当前尾结点的指针域,并将当前尾结点的指针域指向当前第一个元素结点,以更新当前第一个元素结点和当前尾结点。能够更加及时且准确地控制各个次级分发器对象之间顺序的变更,从而确保目标次级分发器对象获取的准确性,提高弹幕消息分发的正确率。通过在将目标弹幕消息分发至目标次级分发器对象之后,变更当前第一个元素结点,能够保证在目标弹幕消息分发至目标次级分发器对象的操作失败时,当前第一个元素结点仍然能够正确地对应于目标次级分发器对象,以便重新进行目标弹幕消息的分发,提高了弹幕消息分发过程中的容错性。
在上述技术方案的基础上,弹幕消息分发方法还包括:若消息列表存储有缓存弹幕消息,则间隔设定时间段,按序从消息列表中获取一条缓存弹幕消息作为目标弹幕消息,并返回执行按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象的步骤,直至消息队列为空。
其中,设定时间段是指预先设定的、用于触发消息列表中缓存弹幕消息分发的定时器时长。
具体地,上述实施例的过程均是以初始弹幕消息的分发操作为弹幕消息分发的触发条件。那么,在消息列表中有缓存弹幕消息,而顶级分发器对象没有新的初始弹幕消息分发,即S210未被触发执行时,无法通过初始弹幕消息的分发操作的触发条件来触发消息列表中缓存弹幕消息的处理,即S206及其后续操作无法被触发执行。此时,为了及时且完整地对消息列表中的缓存弹幕消息进行分发,本实施例中采用了设置定时器的触发条件。即在定时器周期到达时,主动触发顶级分发器对象按序从消息列表中获取一条缓存弹幕消息作为目标弹幕消息,并继续执行后续S207及其后续步骤,直至将消息列表中的缓存弹幕消息全部分发完毕,即消息列表为空。这样设置的好处在于,不仅能够保证弹幕消息分发的及时性和完整性,还可以进一步平衡弹幕消息分发时效性与系统内存消耗,从而更进一步地提高弹幕消息分发效率。
以下是本发明实施例提供的弹幕消息分发装置的实施例,该装置与上述各实施例的弹幕消息分发方法属于同一个发明构思,在弹幕消息分发装置的实施例中未详尽描述的细节内容,可以参考上述弹幕消息分发方法的实施例。
实施例三
本实施例提供一种弹幕消息分发装置,参见图3,该装置具体包括:
待分发弹幕消息确定模块310,用于依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;
目标弹幕消息确定模块320,用于依据待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息;
目标次级分发器对象确定模块330,用于按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,次级分发器对象集合为链表结构;
弹幕消息分发模块340,用于调用目标次级分发器对象中的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象,其中,第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得。
可选地,待分发弹幕消息确定模块310具体用于:
依据初始弹幕消息确定目标消息标识;
依据目标消息标识,通过开关语句Switch,确定目标消息标识对应的初始JavaBean对象;
依据初始JavaBean对象重构初始弹幕消息,获得目标JavaBean对象,作为待分发弹幕消息。
可选地,目标弹幕消息确定模块320具体用于:
判断消息列表是否存储缓存弹幕消息;
若否,则将待分发弹幕消息确定为目标弹幕消息;
若是,则将待分发弹幕消息存储至消息列表,并按序从消息列表中获取一条缓存弹幕消息作为目标弹幕消息。
可选地,在上述装置的基础上,该装置还包括:
循环模块,用于若消息列表存储有缓存弹幕消息,则间隔设定时间段,按序从消息列表中获取一条缓存弹幕消息作为目标弹幕消息,并返回执行按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象的步骤,直至消息队列为空。
可选地,目标次级分发器对象确定模块330具体用于:
获取次级分发器对象集合中的当前第一个元素结点中的次级分发器对象,作为目标次级分发器对象。
进一步地,在上述装置的基础上,该装置还包括:
元素结点更新模块,用于在调用目标次级分发器对象中的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象之后,将次级分发器对象集合的头结点的指针域指向当前第二个元素结点;
将当前第一个元素结点的指针域指向当前尾结点的指针域,并将当前尾结点的指针域指向当前第一个元素结点,以更新当前第一个元素结点和当前尾结点。
可选地,在上述装置的基础上,该装置还包括集合生成模块,用于通过如下步骤预先生成次级分发器对象集合:
依据第一弹幕分发协议创建次级分发器对象集合;
在创建各次级分发器对象之后,各次级分发器对象分别通过协议继承关键字继承第一弹幕分发协议,获得各次级分发器协议对象;
以各次级分发器协议对象为函数输入参数,分别调用次级分发器对象集合的集合元素添加函数,将各次级分发器协议对象添加至次级分发器对象集合。
通过本发明实施例三的一种弹幕消息分发装置,实现了按序、高效且及时地将弹幕消息分发至各个消息接收器对象。
本发明实施例所提供的弹幕消息分发装置可执行本发明任意实施例所提供的弹幕消息分发方法,具备执行方法相应的功能模块和有益效果。值得注意的是,上述弹幕消息分发装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
参见图4,本实施例提供了一种设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器420执行,使得一个或多个处理器420实现本发明实施例所提供的弹幕消息分发方法,包括:
依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;
依据待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息;
按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,次级分发器对象集合为链表结构;
调用目标次级分发器对象中的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象,其中,第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得。
当然,本领域技术人员可以理解,处理器420还可以实现本发明任意实施例所提供的弹幕消息分发方法的技术方案。
图4显示的设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,该设备400包括处理器420、存储装置410、输入装置430和输出装置440;设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的弹幕消息分发方法对应的程序指令/模块(例如,弹幕消息分发装置中的待分发弹幕消息确定模块、目标弹幕消息确定模块、目标次级分发器对象确定模块和弹幕消息分发模块)。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种弹幕消息分发方法,该方法包括:
依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;
依据待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息;
按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,次级分发器对象集合为链表结构;
调用目标次级分发器对象中的第一弹幕分发函数,将目标弹幕消息分发至目标次级分发器对象,以使目标次级分发器对象将目标弹幕消息分发至各消息接收器对象,其中,第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的弹幕消息分发方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的弹幕消息分发方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种弹幕消息分发方法,其特征在于,包括:
依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;
依据所述待分发弹幕消息和消息列表是否存储缓存弹幕消息确定目标弹幕消息;
按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,所述次级分发器对象集合为链表结构;
调用目标次级分发器对象中的第一弹幕分发函数,将所述目标弹幕消息分发至所述目标次级分发器对象,以使所述目标次级分发器对象将所述目标弹幕消息分发至各消息接收器对象,其中,所述第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得,所述第一弹幕分发函数为所述第一弹幕分发协议的内部函数,所述第一弹幕分发协议为透传式通信协议;
所述依据所述待分发弹幕消息和消息列表是否存储缓存弹幕消息确定目标弹幕消息包括:
判断所述消息列表是否存储缓存弹幕消息;
若否,则将所述待分发弹幕消息确定为所述目标弹幕消息;
若是,则将所述待分发弹幕消息存储至所述消息列表,并按序从所述消息列表中获取一条缓存弹幕消息作为所述目标弹幕消息。
2.根据权利要求1所述的方法,其特征在于,所述依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息包括:
依据所述初始弹幕消息确定目标消息标识;
依据所述目标消息标识,通过开关语句Switch,确定所述目标消息标识对应的初始JavaBean对象;
依据所述初始JavaBean对象重构所述初始弹幕消息,获得目标JavaBean对象,作为所述待分发弹幕消息。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述消息列表存储有缓存弹幕消息,则间隔设定时间段,按序从所述消息列表中获取一条缓存弹幕消息作为所述目标弹幕消息,并返回执行按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象的步骤,直至消息队列为空。
4.根据权利要求1所述的方法,其特征在于,所述按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象包括:
获取所述次级分发器对象集合中的当前第一个元素结点中的次级分发器对象,作为所述目标次级分发器对象。
5.根据权利要求4所述的方法,其特征在于,在所述调用目标次级分发器对象中的第一弹幕分发函数,将所述目标弹幕消息分发至所述目标次级分发器对象之后,还包括:
将所述次级分发器对象集合的头结点的指针域指向当前第二个元素结点;
将当前第一个元素结点的指针域指向当前尾结点的指针域,并将当前尾结点的指针域指向当前第一个元素结点,以更新当前第一个元素结点和当前尾结点。
6.根据权利要求1或4所述的方法,其特征在于,所述次级分发器对象集合通过如下步骤预先生成:
依据所述第一弹幕分发协议创建所述次级分发器对象集合;
在创建各所述次级分发器对象之后,各所述次级分发器对象分别通过协议继承关键字继承所述第一弹幕分发协议,获得各次级分发器协议对象;
以各所述次级分发器协议对象为函数输入参数,分别调用所述次级分发器对象集合的集合元素添加函数,将各所述次级分发器协议对象添加至所述次级分发器对象集合。
7.一种弹幕消息分发装置,其特征在于,包括:
待分发弹幕消息确定模块,用于依据初始弹幕消息确定满足预设弹幕分发规则的待分发弹幕消息;
目标弹幕消息确定模块,用于依据所述待分发弹幕消息和消息列表是否存储缓存弹幕消息,确定目标弹幕消息;
目标次级分发器对象确定模块,用于按照顺序选择规则从次级分发器对象集合中确定目标次级分发器对象,其中,所述次级分发器对象集合为链表结构;
弹幕消息分发模块,用于调用目标次级分发器对象中的第一弹幕分发函数,将所述目标弹幕消息分发至所述目标次级分发器对象,以使所述目标次级分发器对象将所述目标弹幕消息分发至各消息接收器对象,其中,所述第一弹幕分发函数为次级分发器对象继承预先定义的第一弹幕分发协议而获得,所述第一弹幕分发函数为所述第一弹幕分发协议的内部函数,所述第一弹幕分发协议为透传式通信协议;
所述目标弹幕消息确定模块具体用于,判断消息列表是否存储缓存弹幕消息;
若否,则将待分发弹幕消息确定为目标弹幕消息;
若是,则将待分发弹幕消息存储至消息列表,并按序从消息列表中获取一条缓存弹幕消息作为目标弹幕消息。
8.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的弹幕消息分发方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的弹幕消息分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810948508.2A CN109274988B (zh) | 2018-08-20 | 2018-08-20 | 弹幕消息分发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810948508.2A CN109274988B (zh) | 2018-08-20 | 2018-08-20 | 弹幕消息分发方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109274988A CN109274988A (zh) | 2019-01-25 |
CN109274988B true CN109274988B (zh) | 2021-01-01 |
Family
ID=65154102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810948508.2A Active CN109274988B (zh) | 2018-08-20 | 2018-08-20 | 弹幕消息分发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109274988B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110662085B (zh) * | 2019-10-16 | 2021-10-01 | 北京字节跳动网络技术有限公司 | 消息发送方法、装置、可读介质及电子设备 |
CN115442635A (zh) * | 2021-06-04 | 2022-12-06 | 武汉斗鱼鱼乐网络科技有限公司 | 一种跨平台安全过滤弹幕的方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0969625A1 (fr) * | 1998-06-30 | 2000-01-05 | Bull S.A. | Agent de communication entre un administrateur et au moins une ressource d'un système informatique |
CN106101851A (zh) * | 2016-07-01 | 2016-11-09 | 上海幻电信息科技有限公司 | 一种弹幕服务的整体实现方法及其网络结构 |
CN107277160A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 一种内容分发网络节点切换方法与装置 |
-
2018
- 2018-08-20 CN CN201810948508.2A patent/CN109274988B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0969625A1 (fr) * | 1998-06-30 | 2000-01-05 | Bull S.A. | Agent de communication entre un administrateur et au moins une ressource d'un système informatique |
CN106101851A (zh) * | 2016-07-01 | 2016-11-09 | 上海幻电信息科技有限公司 | 一种弹幕服务的整体实现方法及其网络结构 |
CN107277160A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 一种内容分发网络节点切换方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109274988A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413502B (zh) | 多线程弹幕消息分发方法、装置、设备及存储介质 | |
CN109274988B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN110750315B (zh) | Android系统中的类加载方法、装置、设备和存储介质 | |
CN109062650B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109089163B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN108810645B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109005465B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN113127775B (zh) | 一种页面加载方法、装置、设备和存储介质 | |
US11431795B2 (en) | Method, apparatus and storage medium for resource configuration | |
CN109144520B (zh) | Android中不同对象间的信息交互方法、装置、设备和存储介质 | |
CN109005468B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN108810644B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109005448B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109086107B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN106708737B (zh) | 一种测试方法及装置 | |
CN109144639B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109413498B (zh) | 一种弹幕消息的分发方法、装置、终端和存储介质 | |
CN109309848B (zh) | 基于重试机制的弹幕分发方法、装置、设备及存储介质 | |
CN109168079B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN108881991B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109246470B (zh) | 多线程同步的弹幕分发方法、装置、设备及存储介质 | |
CN110324722B (zh) | 直播间中数据的获取方法、装置、设备和存储介质 | |
CN109413489B (zh) | 串行式的多线程弹幕分发方法、装置、设备和存储介质 | |
CN109062620B (zh) | Android帧动画执行方法、装置、终端及可读介质 |
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 |