CN109246484B - 弹幕消息传输方法、装置、设备与存储介质 - Google Patents
弹幕消息传输方法、装置、设备与存储介质 Download PDFInfo
- Publication number
- CN109246484B CN109246484B CN201811067865.4A CN201811067865A CN109246484B CN 109246484 B CN109246484 B CN 109246484B CN 201811067865 A CN201811067865 A CN 201811067865A CN 109246484 B CN109246484 B CN 109246484B
- Authority
- CN
- China
- Prior art keywords
- bullet screen
- transmission
- protocol
- function
- 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/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
- 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]
-
- 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/26—Special purpose or proprietary protocols or architectures
-
- 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
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4314—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid
-
- 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)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种弹幕消息传输方法、装置、设备与存储介质。该方法包括:弹幕接收对象依据目标弹幕消息,通过预先获得的转发协议对象调用第一弹幕传输函数,以将目标弹幕消息传输至转发协议对象;转发协议对象回调第一弹幕传输函数获得目标弹幕消息,并触发判断分发协议对象是否为空对象;若是,则转发协议对象在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的传输协议对象调用第三弹幕传输函数,以将目标弹幕消息传输至传输协议对象;传输协议对象回调第三弹幕传输函数,将目标弹幕消息传输至弹幕分发对象。通过上述技术方案,实现了弹幕消息在弹幕接收模块与弹幕分发模块之间的快速传输,提高了弹幕消息传输的时效性。
Description
技术领域
本发明实施例涉及信息传输技术,尤其涉及一种弹幕消息传输方法、装置、设备与存储介质。
背景技术
在诸如斗鱼的音视频播放/直播应用软件中,会大量使用弹幕消息。通常,弹幕消息是由传输及处理弹幕消息的服务器(即弹幕服务器)发送至应用软件中接收弹幕消息的弹幕接收模块,并由弹幕接收模块进一步发送至分发弹幕消息的弹幕分发模块。其中,弹幕接收模块与弹幕分发模块之间的信息交互,是基于两个功能模块各自提供的交互接口来实现的。
但是,上述基于功能模块交互接口的交互方式,需要建立两个功能模块之间的依赖关系,这使得两个功能模块之间的耦合性较强,不利于功能模块的独立开发,且会造成弹幕消息的传输时效性低。另外,如果弹幕分发模块中的弹幕分发对象未被初始化,则上述交互方式便无法进行弹幕消息的传输。
发明内容
本发明实施例提供一种弹幕消息传输方法、装置、设备与存储介质,以实现弹幕消息在弹幕接收模块与弹幕分发模块之间的快速传输,提高弹幕消息传输的时效性。
第一方面,本发明实施例提供了一种弹幕消息传输方法,包括:
弹幕接收对象依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将所述目标弹幕消息传输至所述转发协议对象,其中,所述转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,所述第一弹幕传输协议包含所述第一弹幕传输函数;
所述转发协议对象回调所述第一弹幕传输函数,获得所述目标弹幕消息,并触发判断分发协议对象是否为空对象,其中,所述分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得;
若是,则所述转发协议对象在所述第一弹幕传输函数中触发依据所述目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将所述目标弹幕消息传输至所述传输协议对象,其中,所述传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,所述第三弹幕传输协议包含所述第三弹幕传输函数;
所述传输协议对象回调所述第三弹幕传输函数,将所述目标弹幕消息传输至所述弹幕分发对象,其中,所述辅助传输对象所属的辅助传输模块为所述弹幕分发对象所属的弹幕分发模块的子模块。
第二方面,本发明实施例还提供了一种弹幕消息传输装置,该装置包括:弹幕接收模块、数据转发模块和辅助传输模块,所述数据转发模块包括消息获取子模块和第一消息发送子模块;
所述弹幕接收模块,用于依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将所述目标弹幕消息传输至所述转发协议对象,其中,所述转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,所述第一弹幕传输协议包含所述第一弹幕传输函数;
所述消息获取子模块,用于回调所述第一弹幕传输函数,获得所述目标弹幕消息,并触发判断分发协议对象是否为空对象,其中,所述分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得;
所述第一消息发送子模块,用于若是,则在所述第一弹幕传输函数中触发依据所述目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将所述目标弹幕消息传输至所述传输协议对象,其中,所述传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,所述第三弹幕传输协议包含所述第三弹幕传输函数;
所述辅助传输模块,用于回调所述第三弹幕传输函数,将所述目标弹幕消息传输至所述弹幕分发对象,其中,所述辅助传输对象所属的辅助传输模块为所述弹幕分发对象所属的弹幕分发模块的子模块。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的弹幕消息传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的弹幕消息传输方法。
本发明实施例通过在弹幕接收对象和弹幕分发对象之间设置一个数据转发对象,以实现弹幕消息在两个独立模块之间的传输,解除了弹幕接收模块和弹幕分发模块之间的耦合关系,降低程序开发难度。通过弹幕接收对象预先获得转发协议对象,建立了弹幕接收对象与数据转发对象之间的数据传输通道,并基于作为回调函数的第一弹幕传输函数,将弹幕接收对象从弹幕服务器接收的目标弹幕消息传输至数据转发对象。通过在转发协议对象的第一弹幕传输函数中触发判断分发协议对象是否为空对象,以及时地判断数据转发对象和弹幕分发对象之间的数据传输通道是否成功建立。通过在分发协议对象为空对象时,转发协议对象通过预先获得的传输协议对象,将目标弹幕消息传输至弹幕分发协议对象,实现了在数据转发对象和弹幕分发对象之间的数据传输通道未建立时,及时地将目标弹幕消息通过另外的辅助通道传输至目标弹幕消息,提高了弹幕消息传输的成功率及时效性。
附图说明
图1是本发明实施例一中的一种弹幕消息传输方法的流程图;
图2是本发明实施例二中的一种弹幕消息传输方法的流程图;
图3是本发明实施例三中的一种弹幕消息传输方法中传输通道的构建方法的流程图;
图4是本发明实施例四中的一种弹幕消息传输装置的结构示意图;
图5是本发明实施例五中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的弹幕消息传输方法可适用于Android客户端中的音视频播放/直播应用软件,将弹幕接收模块接收到的弹幕消息传输至弹幕分发模块,尤其适用于弹幕接收模块与弹幕分发模块之间的快速通信通道未成功建立的情况。该方法可以由弹幕消息传输装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有适配于Android系统的音视频播放/直播应用软件的设备中,例如典型的是用户终端设备,例如手机、平板电脑或智能电视等。参见图1,本实施例的方法具体包括如下步骤:
S110、弹幕接收对象依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将目标弹幕消息传输至转发协议对象。
其中,弹幕接收对象是指用于接收从弹幕服务器发送而来的弹幕消息的弹幕接收模块中的对象。弹幕接收模块中为实现弹幕消息接收操作而定义了弹幕接收类,而弹幕接收对象则是弹幕接收类的一个实例。目标弹幕消息是指等待由弹幕接收对象传输至弹幕分发对象的弹幕消息。这里,弹幕分发对象是指用于进行弹幕消息分发的弹幕分发模块中的对象,该弹幕分发模块中为实现弹幕消息分发操作而定义了弹幕分发类,而弹幕分发对象则是弹幕分发类的一个实例。
转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,第一弹幕传输协议包含第一弹幕传输函数。这里,数据转发对象是指用于进行数据中转的模块中的对象,该数据中转模块中为实现数据中转操作而定义了数据转发类classDataDistribution,而数据转发对象则是数据转发类的一个实例。第一弹幕传输协议是预先定义的、用于在弹幕接收模块和数据转发模块之间进行弹幕消息传输的组件间通信协议,其包含用于实现弹幕消息传输操作的协议内部函数——第一弹幕传输函数。当数据转发类通过Java语言中规定的进行接口协议继承的关键字implements继承了第一弹幕传输协议之后,其便具有了第一弹幕传输协议的通信功能,也会复写并实现其协议内部函数,之后数据转发类的实例化对象——数据转发对象也具有了第一弹幕传输函数,其同时为数据转发对象和转发协议对象。
例如,第一弹幕传输协议的代码实现可以为:public interface IDanmuProtocl{public void onReceiveMsg(String type,String info);}。其中,public为公有权限修饰符,这样其他类和对象也可访问该第一弹幕消息传输协议IDanmuProtocl。interface为接口类型限定符,其表明第一弹幕消息传输协议IDanmuProtocl为接口实现机制,便于其他类的多态继承。String type和String info分别为第一弹幕传输函数onReceiveMsg的函数输入参数,该函数输入参数包括字符串String类型的弹幕消息标识type和字符串String类型的弹幕消息体信息info。弹幕消息标识是指能够标识弹幕消息的字符,其可以是数字、字母、符号及上述各种字符的任意组合,该弹幕消息标识应当是一条弹幕消息的唯一的、全局的标识。弹幕消息体信息是指弹幕消息的承载者,其内包含具体的弹幕消息内容。
具体地,弹幕接收对象从弹幕服务器接收目标弹幕消息。然后,弹幕接收对象根据第一弹幕传输函数的函数输入参数形式,解析目标弹幕消息,获得解析结果。之后,弹幕接收对象以解析结果作为函数输入参数,通过预先获得的转发协议对象,调用其继承而来的第一弹幕传输函数,即DataDistribution.onReceiveMsg(String type,String info),以便将目标弹幕消息传输至转发协议对象。本发明实施例中将第一弹幕传输函数设计为一个回调函数,上述弹幕接收对象中的调用操作仅是通过第一弹幕传输函数的函数指针,将目标弹幕消息由转发协议对象提供的接口传输至转发协议对象,并自动触发第一弹幕传输函数体的执行,也就是触发S120的执行。
上述过程中,弹幕接收对象是在S110的执行之前,预先获取转发协议对象的,获取的方式可以是通过弹幕接收对象和数据转发对象提供的交互接口;也可以是通过函数调用方式,将相应的对象作为函数参数进行传输。
S120、转发协议对象回调第一弹幕传输函数,获得目标弹幕消息,并触发判断分发协议对象是否为空对象。
其中,分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得。这里,第二弹幕传输协议是预先定义的、用于在数据转发模块和弹幕分发模块之间进行弹幕消息传输的组件间通信协议。当弹幕分发类继承第二弹幕传输协议、复写并实现其协议内部函数且实例化对象之后,弹幕分发对象便具有了第二弹幕传输协议的通信功能,即同时成为分发协议对象。需要说明的是,本发明实施例中的接口类协议继承均为S110中说明的过程。
具体地,第一弹幕传输函数在弹幕接收对象中被调用后,转发协议对象(数据转发对象)则被触发执行第一弹幕传输函数,以接收作为函数输入参数而传入的目标弹幕消息。该目标弹幕消息的接收又作为转发协议对象判断分发协议对象是否为空对象的触发条件。具体实施时,转发协议对象中的第一弹幕传输函数的函数实现中,不仅包含目标弹幕消息的接收操作,也包含分发协议对象是否为空对象null的判断操作。这样,当转发协议对象通过第一弹幕传输函数接收到目标弹幕消息之后,自动触发分发协议对象是否为空对象的判断。例如自动触发DanmuSender==null语句,以判断转发协议对象中是否存在初始化的分发协议对象DanmuSender。若结果为false,则表明转发协议对象中存在已经初始化的分发协议对象,则说明数据转发模块与弹幕分发模块之间的快速通信通道已经建立,后续可以直接利用该快速通道进行弹幕消息的传输;如果结果为true,则表明转发协议对象中不存在已经初始化的分发协议对象,则说明上述快速通信通道并未成功建立,其原因可能是弹幕分发对象未初始化,弹幕分发类没有继承并实现通信协议而生成分发协议对象,或者数据转发对象和分发协议对象的互相引用没有成功实现等,此时需要启用辅助通道进行弹幕消息的传输,继续执行S130。
S130、转发协议对象在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将目标弹幕消息传输至传输协议对象。
其中,传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,第三弹幕传输协议包含第三弹幕传输函数。这里,辅助传输对象是指用于在快速通信通道无法成功通信时,辅助进行数据传输的模块中的对象,该辅助传输模块中为辅助数据转发模块和弹幕分发模块之间的数据传输而定义了辅助传输类,而辅助传输对象则是辅助传输类的一个实例。第三弹幕传输协议是预先定义的、用于在数据转发模块和辅助传输模块之间进行弹幕消息传输的组件间通信协议,其包含用于实现弹幕消息传输操作的协议内部函数——第三弹幕传输函数。辅助传输类是一个在应用程序启动时便初始化的类,并且其在初始化之后便进行协议继承及实例化对象的操作,此时会生成同时为传输协议对象的辅助传输对象,之后执行传输协议对象与转发协议对象互相引用的操作,则在应用程序启动时便能够获得兼具第三弹幕传输协议的通信功能的传输协议对象,并且建立转发协议对象与辅助传输对象之间的辅助通信通道。
示例性地,第三弹幕传输函数与第一弹幕传输函数的函数输入参数相同。例如函数输入参数的个数、数据类型和参数排序等均相同。这样设置的好处在于,后续利用两个弹幕传输函数进行数据传输过程中,所传输的数据不需进行协议转换,如数据格式或数据类型等的转换,进一步提高数据传输效率,进而提高目标弹幕消息传输的时效性。例如,第三弹幕传输协议INotificationSub的代码实现可以为:public interfaceINotificationSub{public void onReceiveMsg(String type,String info);}。
具体地,转发协议对象判断分发协议对象为空对象时,便会启用辅助通信通道。此时,转发协议对象中的第一弹幕传输函数中判断分发协议对象为空对象的结果true便作为转发协议对象调用第三弹幕传输函数的触发条件。具体实施时,转发协议对象中的第一弹幕传输函数的函数实现中还包含作为回调函数的第三弹幕传输函数的调用操作。这样,当第一弹幕传输函数接收到目标弹幕消息并判断分发协议对象为空对象之后,自动触发第三弹幕传输函数的调用。该调用过程是在第一弹幕传输函数中,将接收的函数输入参数对应的目标弹幕消息,如弹幕消息标识type和弹幕消息体信息info,再次作为函数输入参数,通过预先获得的传输协议对象SubSender,调用其复写的第三弹幕传输函数,即SubSender.onReceiveMsg(String type,String info)。如此,转发协议对象中的第一弹幕传输函数便通过第三弹幕传输函数的函数指针,将目标弹幕消息由传输协议对象提供的接口传输至传输协议对象(辅助传输对象),并自动触发第三弹幕传输函数体的执行,即触发执行S140。
S140、传输协议对象回调第三弹幕传输函数,将目标弹幕消息传输至弹幕分发对象。
其中,辅助传输对象所属的辅助传输模块为弹幕分发对象所属的弹幕分发模块的子模块,这样便可在辅助传输对象和弹幕分发对象之间方便地进行数据传输。
具体地,第三弹幕传输函数在转发协议对象中被调用后,传输协议对象则被触发执行第三弹幕传输函数,以接收作为函数输入参数而传入的目标弹幕消息。此后,传输协议对象需要将该目标弹幕消息发送至弹幕分发对象。如果此时传输协议对象检测到弹幕分发对象还未被初始化,则需要触发弹幕分发对象的初始化操作,之后,传输协议对象将目标弹幕消息发送给初始化后的弹幕分发对象。至此,目标弹幕消息便通过数据转发对象和弹幕分发对象之间建立的辅助通信通道,由弹幕接收对象成功传输至弹幕分发对象中。
需要说明的是,弹幕分发对象初始化之后,会触发执行分发协议对象的生成以及分发协议对象与转发协议对象之间的对象互相引用,从而构建快速通信通道。
本实施例的技术方案,通过在弹幕接收对象和弹幕分发对象之间设置一个数据转发对象,以实现弹幕消息在两个独立模块之间的传输,解除了弹幕接收模块和弹幕分发模块之间的耦合关系,降低程序开发难度。通过弹幕接收对象预先获得转发协议对象,建立了弹幕接收对象与数据转发对象之间的数据传输通道,并基于作为回调函数的第一弹幕传输函数,将弹幕接收对象从弹幕服务器接收的目标弹幕消息传输至数据转发对象。通过在转发协议对象的第一弹幕传输函数中触发判断分发协议对象是否为空对象,以及时地判断数据转发对象和弹幕分发对象之间的数据传输通道是否成功建立。通过在分发协议对象为空对象时,转发协议对象通过预先获得的传输协议对象,将目标弹幕消息传输至弹幕分发协议对象,实现了在数据转发对象和弹幕分发对象之间的数据传输通道未建立时,及时地将目标弹幕消息通过另外的辅助通道传输至目标弹幕消息,提高了弹幕消息传输的成功率及时效性。
实施例二
本实施例在上述实施例一的基础上,增加了判断分发协议对象不为空对象时的目标弹幕消息传输步骤。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的弹幕消息传输方法包括:
S210、弹幕接收对象依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将目标弹幕消息传输至转发协议对象。
S220、转发协议对象回调第一弹幕传输函数,获得目标弹幕消息,并触发判断分发协议对象是否为空对象。若是,则执行S230;如否,则执行S250。
S230、转发协议对象在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将目标弹幕消息传输至传输协议对象。
S240、传输协议对象回调第三弹幕传输函数,将目标弹幕消息传输至弹幕分发对象。
示例性地,第三弹幕传输函数通过如下方式实现将目标弹幕消息传输至弹幕分发对象的功能:A、传输协议对象依据第三弹幕传输函数的函数输入参数,获得目标弹幕消息;B、传输协议对象在弹幕分发对象已初始化时,将目标弹幕消息传输至弹幕分发对象。
具体地,传输协议对象通过执行第三弹幕传输函数,可以获得作为函数输入参数传入的目标弹幕消息。之后,传输协议对象在第三弹幕传输函数中判断弹幕分发对象DanmuSender是否初始化,即触发执行DanmuSender==null语句。若语句执行结果为false,则表明弹幕分发对象已经初始化,传输协议对象可以直接将目标弹幕消息发送至弹幕分发对象。
示例性地,在传输协议对象依据第三弹幕传输函数的函数输入参数,获得目标弹幕消息之后,还包括:若传输协议对象判断弹幕分发对象未初始化,则调用弹幕分发类的初始化函数,初始化弹幕分发对象。
其中,初始化函数是进行对象初始化的函数,其可以是诸如构造函数的系统函数,也可以是用户编程定义的自定义函数。
具体地,上述过程中,如果第三弹幕传输函数中判断弹幕分发对象未初始化,如上述语句的执行结果为true,那么传输协议对象在第三弹幕传输函数中需要触发弹幕分发类执行其对应的初始化函数,如触发弹幕分发类调用其构造函数,以实现弹幕分发对象的初始化操作,获得初始化的弹幕分发对象。可以理解,此时弹幕分发对象已经初始化完成,便可执行上述步骤B,以进行目标都那么消息的传输。
S250、转发协议对象在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的分发协议对象,调用第二弹幕传输函数,以将弹幕消息传输至分发协议对象。
其中,第二弹幕传输函数为第二弹幕传输协议的内部函数,其用于传输数据转发模块和弹幕分发模块之间的弹幕消息。可以理解,分发协议对象因为具有第二弹幕传输协议的通信功能,故其中也包含第二弹幕传输函数。该过程中,转发协议对象至少是在本步骤执行之前预先获取分发协议对象的,获取的方式参见S110的说明。
示例性地,第二弹幕传输函数与第一弹幕传输函数的函数输入参数相同。函数设置过程及目的见上述S130中的相应说明。例如,第二弹幕传输协议IViewProtocl的代码实现可以为:public interface IViewProtocl{public void onReceiveMsg(String type,String info);}。
具体地,转发协议对象在第一弹幕传输函数中判断分发协议对象不为空对象时,在函数内部以上述判断结果作为转发协议对象调用第二弹幕传输函数的触发条件。具体实施时,转发协议对象中的第一弹幕传输函数的函数实现中还包含作为回调函数的第二弹幕传输函数的调用操作。这样,当第一弹幕传输函数接收到目标弹幕消息并判断分发协议对象不为空对象之后,自动触发第二弹幕传输函数的调用。该调用过程是在第一弹幕传输函数中,将接收的函数输入参数对应的目标弹幕消息,如弹幕消息标识type和弹幕消息体信息info,再次作为函数输入参数,通过预先获得的分发协议对象DanmuSender,调用其复写的第二弹幕传输函数,即DanmuSender.onReceiveMsg(String type,String info)。如此,转发协议对象中的第一弹幕传输函数便通过第二弹幕传输函数的函数指针,将目标弹幕消息由分发协议对象提供的接口传输至分发协议对象(弹幕分发对象),并自动触发第二弹幕传输函数体的执行,也就是触发S260的执行。
S260、分发协议对象回调第二弹幕传输函数,获得目标弹幕消息。
具体地,第二弹幕传输函数在转发协议对象中被调用后,分发协议对象则被触发执行第二弹幕传输函数,以接收作为函数输入参数而传入的目标弹幕消息。至此,目标弹幕消息便通过数据转发对象和弹幕分发对象之间建立的快速通信通道,由弹幕接收对象快速传输至弹幕分发对象中。
本实施例的技术方案,通过在分发协议对象不为空对象时,转发协议对象预先获得分发协议对象,建立了数据转发对象与弹幕分发对象之间的快速通信通道。通过在第一弹幕传输函数中触发作为回调函数的第二弹幕传输函数,使得数据转发对象在其获得目标弹幕的同时,将获得的目标弹幕消息传输至弹幕分发对象,提高了弹幕消息传输的时效性。
实施例三
本实施例在上述实施例的基础上,对弹幕消息传输的两条传输通道的预先构建操作进行进一步优化。具体是对“转发协议对象的预先获得”进行了进一步优化。在此基础上,可以进一步对“传输协议对象的预先获得”进行优化。在上述基础上,还可以进一步对“分发协议对象的预先获得”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图3,本实施例提供的弹幕消息传输方法中传输通道的构建方法包括:
S310、数据转发对象通过弹幕接收类调用第一对象获取函数,获取弹幕接收对象。
其中,第一对象获取函数是弹幕接收类中的内部函数(也称成员函数),其用于获取弹幕接收类中的对象。示例性地,弹幕接收对象为单例对象。本实施例中将弹幕接收类设置为单例模式,这样弹幕接收类仅可有一个弹幕接收对象。这样设置的好处在于将弹幕接收对象设置为全局对象,以便其他类或对象可以直接获取。
具体地,本实施例中构建弹幕接收模块与数据转发模块之间的快速通信通道,是通过互相获取相应对象的方式来实现的。由于弹幕接收对象为单例对象,故数据转发对象可以直接获取弹幕接收对象。具体实施时,数据转发对象首先通过弹幕接收类,调用其中的第一对象获取函数getInstence(),获取函数返回值,该函数返回值便为弹幕接收对象。此时,数据转发对象便持有了弹幕分发对象。
S320、数据转发对象依据第一弹幕传输协议,将数据转发对象转换为转发协议对象。
具体地,由于弹幕接收对象所要获取的数据转发对象中需要具有第一弹幕传输函数,且数据转发对象应该仅具有第一弹幕传输协议对象的通信功能,以方便后续基于第一弹幕传输协议的函数调用。故在弹幕接收对象获得数据转发对象之前,需要在数据转发对象的生命周期函数内,先根据第一弹幕传输协议,将继承了第一弹幕传输协议的数据转发对象,强制转换为仅具有第一弹幕传输协议对象功能的转发协议对象。其代码实现可以为:(IDanmuProtocl)DataDistribution。由于数据转发对象已经持有弹幕接收对象,故强制转换后的转发协议对象也持有弹幕接收对象。
S330、数据转发对象通过弹幕接收对象,以转发协议对象为函数输入参数,调用弹幕接收对象中的第一对象传输函数,以使弹幕接收对象获得具有全局作用域的转发协议对象。
其中,第一对象传输函数是弹幕接收类中定义的,用于进行对象传输的函数。例如,第一对象传输函数可以定义为:public void setIDanmuProtocl(IDanmuProtocl mm){IDanmuProtocl iDanmu=mm;}。其中,第一对象传输函数setIDanmuProtocl的函数输入参数mm是一个数据类型为第一弹幕传输协议IDanmuProtocl类型的对象。iDanmu是弹幕接收对象中的一个数据类型同样为第一弹幕传输协议IDanmuProtocl类型的对象变量。
具体地,根据上述说明可知,转发协议对象持有了弹幕接收对象,且弹幕接收对象中包含第一对象传输函数,故在数据转发对象的生命周期函数中,以转发协议对象为函数输入参数mm,通过转发协议对象持有的弹幕接收对象,调用其内的第一对象传输函数setIDanmuProtocl(mm),将转发协议对象赋值给弹幕接收对象中的对象变量iDanmu。弹幕接收对象中的第一对象传输函数将接收到的转发协议对象的作用域从函数内部的局部作用域转换为弹幕接收对象的全局作用域,以便弹幕接收对象可以长时间持有转发协议对象。此时,弹幕接收对象和数据转发对象为互相持有对象的状态,则构建了弹幕接收模块和数据转发模块之间的快速通信通道。
S340、辅助传输对象通过数据转发类调用第三对象获取函数,获取数据转发对象。
其中,第三对象获取函数是数据转发类中的内部函数(也称成员函数),其用于获取辅助传输类中的对象。示例性地,数据转发对象为单例对象。设置目的见S310的说明。
具体地,本实施例中构建数据转发模块与辅助传输模块之间的辅助通信通道,也是通过互相获取相应对象的方式来实现的。具体实施时,辅助传输对象首先通过数据转发类调用其中的第三对象获取函数getInstence(),获取函数返回值——数据转发对象。此时,辅助传输对象便持有了数据转发对象。
S350、辅助传输对象依据第三弹幕传输协议,将辅助传输对象转换为传输协议对象。
具体地,在数据转发对象获得辅助传输对象之前,在辅助传输对象的生命周期函数内,根据第三弹幕传输协议,将继承了第三弹幕传输协议的辅助传输对象,强制转换为仅具有第三弹幕传输协议对象功能的传输协议对象。其代码实现可以为:(INotificationSub)SubSender。该强制转换后的传输协议对象也持有数据转发对象。该步骤的设置目的见S320的相应说明。
S360、辅助传输对象通过数据转发对象,以传输协议对象为函数输入参数,调用数据转发对象中的第三对象传输函数,以使数据转发对象获得具有全局作用域的传输协议对象。
其中,第三对象传输函数是数据转发类中定义的,用于进行对象传输的函数。例如,第三对象传输函数可以定义为:public void setINotfProtocl(INotificationSubnotif){INotificationSub iNotf=notif;}。
具体地,根据上述说明可知,传输协议对象持有了数据转发对象,且数据转发对象中包含第三对象传输函数,故在辅助传输对象的生命周期函数中,以传输协议对象为函数输入参数notif,通过传输协议对象持有的数据转发对象,调用其内的第三对象传输函数setINotfProtocl(notif)。数据转发对象中的第三对象传输函数将传输协议对象赋值给数据转发对象中的对象变量iNotf,并将接收到的传输协议对象的作用域从函数内部的局部作用域转换为数据转发对象的全局作用域。此时,数据转发对象和传输协议对象为互相持有对象的状态,则构建了数据转发模块和传输协议模块之间的辅助通信通道。
S370、弹幕分发对象通过数据转发类,调用第二对象获取函数,获取数据转发对象。
其中,第二对象获取函数是数据转发类中的内部函数(也称成员函数),其用于获取数据转发类中的对象。示例性地,数据转发对象为单例对象。设置目的见S310的说明。
具体地,本实施例中构建数据转发模块与弹幕分发模块之间的通信通道,也是通过互相获取相应对象的方式来实现的。具体实施时,弹幕分发对象首先通过数据转发类调用其中的第二对象获取函数getInstence(),获取函数返回值——数据转发对象。此时,弹幕分发对象便持有了数据转发对象。
S380、弹幕分发对象依据第二弹幕传输协议,将弹幕分发对象转换为分发协议对象。
具体地,在数据转发对象获得弹幕分发对象之前,在弹幕分发对象的生命周期函数内,根据第二弹幕传输协议,将继承了第二弹幕传输协议的弹幕分发对象,强制转换为仅具有第二弹幕传输协议对象功能的分发协议对象。其代码实现可以为:(IViewProtocl)DanmuSender。该强制转换后的分发协议对象也持有数据转发对象。该步骤的设置目的见S320的相应说明。
S390、弹幕分发对象通过数据转发对象,以分发协议对象为函数输入参数,调用数据转发对象中的第二对象传输函数,以使数据转发对象获得具有全局作用域的分发协议对象。
其中,第二对象传输函数是数据转发类中定义的,用于进行对象传输的函数。例如,第二对象传输函数可以定义为:public void setIViewProtocl(IViewProtocl nn){IViewProtocl iView=nn;}。
具体地,根据上述说明可知,分发协议对象持有了数据转发对象,且数据转发对象中包含第二对象传输函数,故在弹幕分发对象的生命周期函数中,以分发协议对象为函数输入参数nn,通过分发协议对象持有的数据转发对象,调用其内的第二对象传输函数setIViewProtocl(nn),将分发协议对象赋值给数据转发对象中的对象变量iView。数据转发对象中的第二对象传输函数将接收到的分发协议对象的作用域从函数内部的局部作用域转换为数据转发对象的全局作用域。此时,数据转发对象和弹幕分发对象为互相持有对象的状态,则构建了数据转发模块和弹幕分发模块之间的快速通信通道。
需要说明的是,上述S310~S330、S340~S360和S370~S390的执行顺序不限定,只要S310~S330在S110之前执行,而S370~S390至少在S250之前执行即可。还需说明的是,根据上述对于辅助传输模块的相关说明可知,S340~S360应当是在应用程序启动之后便执行的,故其必然会在S130之前执行。
本实施例的技术方案,通过弹幕接收模块和数据转发模块之间的通信通道的构建、数据转发模块和弹幕分发模块之间的通信通道的构建,以及数据转发模块和辅助传输模块之间的通信通道的构建,保持了弹幕接收模块与弹幕分发模块之间的两条通信通道——快速通信通道和辅助通信通道,保证了弹幕接收模块与弹幕分发模块之间弹幕消息传输的成功率及时效性。
以下是本发明实施例提供的弹幕消息传输装置的实施例,该装置与上述各实施例的弹幕消息传输方法属于同一个发明构思,在弹幕消息传输装置的实施例中未详尽描述的细节内容,可以参考上述弹幕消息传输方法的实施例。
实施例四
本实施例提供一种弹幕消息传输装置,参见图4,该装置具体包括:
弹幕接收模块410、数据转发模块420和辅助传输模块430,数据转发模块420包括消息获取子模块421和第一消息发送子模块422;
弹幕接收模块410,用于依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将目标弹幕消息传输至转发协议对象,其中,转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,第一弹幕传输协议包含第一弹幕传输函数;
消息获取子模块421,用于回调第一弹幕传输函数,获得目标弹幕消息,并触发判断分发协议对象是否为空对象,其中,分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得;
第一消息发送子模块422,用于若是,则在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将目标弹幕消息传输至传输协议对象,其中,传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,第三弹幕传输协议包含第三弹幕传输函数;
辅助传输模块430,用于回调第三弹幕传输函数,将目标弹幕消息传输至弹幕分发对象,其中,辅助传输对象所属的辅助传输模块为弹幕分发对象所属的弹幕分发模块的子模块。
可选地,数据转发模块420包括转发协议对象获取模块,用于通过如下方式使得弹幕接收对象预先获得转发协议对象:
通过弹幕接收类调用第一对象获取函数,获取弹幕接收对象,其中,弹幕接收对象为单例对象;
依据第一弹幕传输协议,将数据转发对象转换为转发协议对象;
通过弹幕接收对象,以转发协议对象为函数输入参数,调用弹幕接收对象中的第一对象传输函数,以使弹幕接收对象获得具有全局作用域的转发协议对象。
可选地,辅助传输模块430包括传输协议对象获取模块,用于通过如下方式使得数据转发对象预先获得传输协议对象:
通过数据转发类调用第三对象获取函数,获取数据转发对象,其中,数据转发对象为单例对象;
依据第三弹幕传输协议,将辅助传输对象转换为传输协议对象;
通过数据转发对象,以传输协议对象为函数输入参数,调用数据转发对象中的第三对象传输函数,以使数据转发对象获得具有全局作用域的传输协议对象。
可选地,辅助传输模块430包括第三弹幕传输函数执行模块,用于通过如下方式实现将目标弹幕消息传输至弹幕分发对象的功能:
依据第三弹幕传输函数的函数输入参数,获得目标弹幕消息;
在弹幕分发对象已初始化时,将目标弹幕消息传输至弹幕分发对象。
进一步地,第三弹幕传输函数执行模块具体用于:
在依据第三弹幕传输函数的函数输入参数,获得目标弹幕消息之后,若判断弹幕分发对象未初始化,则调用弹幕分发类的初始化函数,初始化弹幕分发对象。
可选地,在上述装置的基础上,该装置还包括弹幕分发模块440,数据转发模块420包括第二消息发送子模块;
第二消息发送子模块,用于若否,则在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的分发协议对象,调用第二弹幕传输函数,以将弹幕消息传输至分发协议对象,其中,第二弹幕传输函数为第二弹幕传输协议的内部函数;
弹幕分发模块440,用于回调第二弹幕传输函数,获得目标弹幕消息。
进一步地,弹幕分发模块440包括分发协议对象获取模块,用于通过如下方式使得数据转发对象预先获得分发协议对象:
弹幕分发对象通过数据转发类调用第二对象获取函数,获取数据转发对象,其中,数据转发对象为单例对象;
弹幕分发对象依据第二弹幕传输协议,将弹幕分发对象转换为分发协议对象;
弹幕分发对象通过数据转发对象,以分发协议对象为函数输入参数,调用数据转发对象中的第二对象传输函数,以使数据转发对象获得具有全局作用域的分发协议对象。
通过本发明实施例四的一种弹幕消息传输装置,实现了弹幕消息在弹幕接收模块与弹幕分发模块之间的快速传输,提高了弹幕消息传输的时效性。
本发明实施例所提供的弹幕消息传输装置可执行本发明任意实施例所提供的弹幕消息传输方法,具备执行方法相应的功能模块和有益效果。
实施例五
参见图5,本实施例提供了一种设备500,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器520执行,使得一个或多个处理器520实现本发明实施例所提供的弹幕消息传输方法,包括:
弹幕接收对象依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将目标弹幕消息传输至转发协议对象,其中,转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,第一弹幕传输协议包含第一弹幕传输函数;
转发协议对象回调第一弹幕传输函数,获得目标弹幕消息,并触发判断分发协议对象是否为空对象,其中,分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得;
若是,则转发协议对象在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将目标弹幕消息传输至传输协议对象,其中,传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,第三弹幕传输协议包含第三弹幕传输函数;
传输协议对象回调第三弹幕传输函数,将目标弹幕消息传输至弹幕分发对象,其中,辅助传输对象所属的辅助传输模块为弹幕分发对象所属的弹幕分发模块的子模块。
当然,本领域技术人员可以理解,处理器520还可以实现本发明任意实施例所提供的弹幕消息传输方法的技术方案。
图5显示的设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图5所示,该设备500包括处理器520、存储装置510、输入装置530和输出装置540;设备中处理器520的数量可以是一个或多个,图5中以一个处理器520为例;设备中的处理器520、存储装置510、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线550连接为例。
存储装置510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的弹幕消息传输方法对应的程序指令/模块(例如,弹幕消息传输装置中的弹幕接收模块、数据转发模块和辅助传输模块)。
存储装置510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种弹幕消息传输方法,该方法包括:
弹幕接收对象依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将目标弹幕消息传输至转发协议对象,其中,转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,第一弹幕传输协议包含第一弹幕传输函数;
转发协议对象回调第一弹幕传输函数,获得目标弹幕消息,并触发判断分发协议对象是否为空对象,其中,分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得;
若是,则转发协议对象在第一弹幕传输函数中触发依据目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将目标弹幕消息传输至传输协议对象,其中,传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,第三弹幕传输协议包含第三弹幕传输函数;
传输协议对象回调第三弹幕传输函数,将目标弹幕消息传输至弹幕分发对象,其中,辅助传输对象所属的辅助传输模块为弹幕分发对象所属的弹幕分发模块的子模块。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的弹幕消息传输方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的弹幕消息传输方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种弹幕消息传输方法,其特征在于,包括:
弹幕接收对象依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将所述目标弹幕消息传输至所述转发协议对象,其中,所述转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,所述第一弹幕传输协议包含所述第一弹幕传输函数;
所述转发协议对象回调所述第一弹幕传输函数,获得所述目标弹幕消息,并触发判断分发协议对象是否为空对象,其中,所述分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得;
若是,则所述转发协议对象在所述第一弹幕传输函数中触发依据所述目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将所述目标弹幕消息传输至所述传输协议对象,其中,所述传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,所述第三弹幕传输协议包含所述第三弹幕传输函数;
所述传输协议对象回调所述第三弹幕传输函数,将所述目标弹幕消息传输至所述弹幕分发对象,其中,所述辅助传输对象所属的辅助传输模块为所述弹幕分发对象所属的弹幕分发模块的子模块,所述辅助传输对象是辅助传输类的一个实例,所述辅助传输类由所述辅助传输模块为辅助数据转发模块和弹幕分发模块之间的数据传输而定义。
2.根据权利要求1所述的方法,其特征在于,所述转发协议对象通过如下方式预先获得:
所述数据转发对象通过弹幕接收类调用第一对象获取函数,获取所述弹幕接收对象,其中,所述弹幕接收对象为单例对象;
所述数据转发对象依据所述第一弹幕传输协议,将所述数据转发对象转换为所述转发协议对象;
所述数据转发对象通过所述弹幕接收对象,以所述转发协议对象为函数输入参数,调用所述弹幕接收对象中的第一对象传输函数,以使所述弹幕接收对象获得具有全局作用域的转发协议对象。
3.根据权利要求1所述的方法,其特征在于,所述传输协议对象通过如下方式预先获得:
所述辅助传输对象通过数据转发类调用第三对象获取函数,获取所述数据转发对象,其中,所述数据转发对象为单例对象;
所述辅助传输对象依据所述第三弹幕传输协议,将所述辅助传输对象转换为所述传输协议对象;
所述辅助传输对象通过所述数据转发对象,以所述传输协议对象为函数输入参数,调用所述数据转发对象中的第三对象传输函数,以使所述数据转发对象获得具有全局作用域的传输协议对象。
4.根据权利要求1所述的方法,其特征在于,所述第三弹幕传输函数通过如下方式实现所述将所述目标弹幕消息传输至所述弹幕分发对象的功能:
所述传输协议对象依据所述第三弹幕传输函数的函数输入参数,获得所述目标弹幕消息;
所述传输协议对象在所述弹幕分发对象已初始化时,将所述目标弹幕消息传输至所述弹幕分发对象。
5.根据权利要求4所述的方法,其特征在于,在所述传输协议对象依据所述第三弹幕传输函数的函数输入参数,获得所述目标弹幕消息之后,还包括:
若所述传输协议对象判断所述弹幕分发对象未初始化,则调用所述弹幕分发类的初始化函数,初始化所述弹幕分发对象。
6.根据权利要求1的方法,其特征在于,在所述转发协议对象判断分发协议对象是否为空对象之后,还包括:
若否,则所述转发协议对象在所述第一弹幕传输函数中触发依据所述目标弹幕消息,通过预先获得的分发协议对象,调用第二弹幕传输函数,以将所述弹幕消息传输至所述分发协议对象,其中,所述第二弹幕传输函数为所述第二弹幕传输协议的内部函数;
所述分发协议对象回调所述第二弹幕传输函数,获得所述目标弹幕消息。
7.根据权利要求6所述的方法,其特征在于,所述分发协议对象通过如下方式预先获得:
所述弹幕分发对象通过数据转发类调用第二对象获取函数,获取所述数据转发对象,其中,所述数据转发对象为单例对象;
所述弹幕分发对象依据所述第二弹幕传输协议,将所述弹幕分发对象转换为所述分发协议对象;
所述弹幕分发对象通过所述数据转发对象,以所述分发协议对象为函数输入参数,调用所述数据转发对象中的第二对象传输函数,以使所述数据转发对象获得具有全局作用域的分发协议对象。
8.一种弹幕消息传输装置,其特征在于,包括:弹幕接收模块、数据转发模块和辅助传输模块,所述数据转发模块包括消息获取子模块和第一消息发送子模块;
所述弹幕接收模块,用于依据目标弹幕消息,通过预先获得的转发协议对象,调用第一弹幕传输函数,以将所述目标弹幕消息传输至所述转发协议对象,其中,所述转发协议对象是数据转发对象基于预先定义的第一弹幕传输协议而获得,所述第一弹幕传输协议包含所述第一弹幕传输函数;
所述消息获取子模块,用于回调所述第一弹幕传输函数,获得所述目标弹幕消息,并触发判断分发协议对象是否为空对象,其中,所述分发协议对象是弹幕分发对象基于预先定义的第二弹幕传输协议而获得;
所述第一消息发送子模块,用于若是,则在所述第一弹幕传输函数中触发依据所述目标弹幕消息,通过预先获得的传输协议对象,调用第三弹幕传输函数,以将所述目标弹幕消息传输至所述传输协议对象,其中,所述传输协议对象是辅助传输对象基于预先定义的第三弹幕传输协议而获得,所述第三弹幕传输协议包含所述第三弹幕传输函数;
所述辅助传输模块,用于回调所述第三弹幕传输函数,将所述目标弹幕消息传输至所述弹幕分发对象,其中,所述辅助传输对象所属的辅助传输模块为所述弹幕分发对象所属的弹幕分发模块的子模块,所述辅助传输对象是辅助传输类的一个实例,所述辅助传输类由所述辅助传输模块为辅助数据转发模块和弹幕分发模块之间的数据传输而定义。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的弹幕消息传输方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的弹幕消息传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811067865.4A CN109246484B (zh) | 2018-09-13 | 2018-09-13 | 弹幕消息传输方法、装置、设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811067865.4A CN109246484B (zh) | 2018-09-13 | 2018-09-13 | 弹幕消息传输方法、装置、设备与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109246484A CN109246484A (zh) | 2019-01-18 |
CN109246484B true CN109246484B (zh) | 2021-04-23 |
Family
ID=65058525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811067865.4A Active CN109246484B (zh) | 2018-09-13 | 2018-09-13 | 弹幕消息传输方法、装置、设备与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109246484B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105898375A (zh) * | 2016-07-01 | 2016-08-24 | 上海幻电信息科技有限公司 | 一种弹幕推送系统及推送方法 |
CN108023808A (zh) * | 2017-12-07 | 2018-05-11 | 深圳乐信软件技术有限公司 | 应用程序中的消息分发方法及装置 |
CN108234491A (zh) * | 2018-01-02 | 2018-06-29 | 武汉斗鱼网络科技有限公司 | 协议关联验证方法、装置及电子设备 |
CN108260019A (zh) * | 2018-01-16 | 2018-07-06 | 深圳市瑞致达科技有限公司 | 弹幕显示方法、装置及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150082342A1 (en) * | 2006-06-15 | 2015-03-19 | Social Commenting, Llc | System and method for viewers to comment on television content for display on remote websites using a web browser |
-
2018
- 2018-09-13 CN CN201811067865.4A patent/CN109246484B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105898375A (zh) * | 2016-07-01 | 2016-08-24 | 上海幻电信息科技有限公司 | 一种弹幕推送系统及推送方法 |
CN108023808A (zh) * | 2017-12-07 | 2018-05-11 | 深圳乐信软件技术有限公司 | 应用程序中的消息分发方法及装置 |
CN108234491A (zh) * | 2018-01-02 | 2018-06-29 | 武汉斗鱼网络科技有限公司 | 协议关联验证方法、装置及电子设备 |
CN108260019A (zh) * | 2018-01-16 | 2018-07-06 | 深圳市瑞致达科技有限公司 | 弹幕显示方法、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109246484A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108023808B (zh) | 应用程序中的消息分发方法及装置 | |
CN114097259B (zh) | 一种通信处理方法、通信处理装置及存储介质 | |
CN111258723B (zh) | 分布式系统的事务处理方法、装置、系统、介质及设备 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN108882053B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109343983B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN109275042A (zh) | 一种弹幕消息的分发方法、装置、终端和存储介质 | |
CN111770062B (zh) | 一种信息处理方法、装置及存储介质 | |
CN109062650B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN108810633B (zh) | 弹幕消息传输方法、装置、设备及存储介质 | |
CN114285906B (zh) | 报文处理方法、装置、电子设备及存储介质 | |
CN111338710A (zh) | 应用程序控制方法、装置、电子设备及存储介质 | |
CN109302639B (zh) | 一种弹幕消息的分发方法、装置、终端和存储介质 | |
CN109388388B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN113312103A (zh) | 智能摄像机的软件定义方法及装置、电子设备和存储介质 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108966035B (zh) | 弹幕消息传输方法、装置、设备与存储介质 | |
CN109144520B (zh) | Android中不同对象间的信息交互方法、装置、设备和存储介质 | |
CN109246484B (zh) | 弹幕消息传输方法、装置、设备与存储介质 | |
CN113127775B (zh) | 一种页面加载方法、装置、设备和存储介质 | |
CN109005468B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
EP4044542A1 (en) | Method and apparatus for subscribing to resource | |
CN108810645B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109089163B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN108924653B (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 |