CN110324722B - 直播间中数据的获取方法、装置、设备和存储介质 - Google Patents

直播间中数据的获取方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN110324722B
CN110324722B CN201910599269.9A CN201910599269A CN110324722B CN 110324722 B CN110324722 B CN 110324722B CN 201910599269 A CN201910599269 A CN 201910599269A CN 110324722 B CN110324722 B CN 110324722B
Authority
CN
China
Prior art keywords
data
batch
initial
virtual article
acquired
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
Application number
CN201910599269.9A
Other languages
English (en)
Other versions
CN110324722A (zh
Inventor
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201910599269.9A priority Critical patent/CN110324722B/zh
Publication of CN110324722A publication Critical patent/CN110324722A/zh
Application granted granted Critical
Publication of CN110324722B publication Critical patent/CN110324722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4784Supplemental services, e.g. displaying phone caller identification, shopping application receiving rewards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种直播间中数据的获取方法、装置、设备和存储介质。该方法包括:获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;若初始单个数据对象不为空对象,则以初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象;若初始批量数据对象不为空对象,则以初始批量数据对象为输入参数,调用数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。通过上述技术方案,实现了直播间中虚拟物品数据的获取,提高了数据获取效率及数据管理便捷性。

Description

直播间中数据的获取方法、装置、设备和存储介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种直播间中数据的获取方法、装置、设备和存储介质。
背景技术
在直播间运行过程中,需要向网络端请求直播间中需要显示的数据,例如主播信息、礼物数据和道具数据等。
对于礼物数据和道具数值这类既需要获取单个数据,又需要获取批量数据的数量可变的直播间虚拟物品数据,由于单个虚拟物品数据和批量虚拟物品数据对应的数据类型存在差异,故目前的获取方式是设计两个数据获取函数,即获取单个虚拟物品数据的数据获取函数,和获取批量虚拟物品数据的数据获取函数。
虽然上述数据获取方案可以实现直播间虚拟物品数据的获取,但是其增加了直播间虚拟物品数据获取的实现逻辑复杂性。并且,在同时获取单个虚拟物品数据和批量虚拟物品数据时,调用两类数据获取函数使得所获得的数据分离,不利于直播间虚拟物品数据的管理。
发明内容
本发明实施例提供一种直播间中数据的获取方法、装置、设备和存储介质,以实现直播间中虚拟物品数据的获取,提高数据获取效率及数据管理便捷性。
第一方面,本发明实施例提供了一种直播间中数据的获取方法,包括:
获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;
若所述初始单个数据对象不为空对象,则以所述初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象,其中,所述数据获取对象基于预先定义的上层泛型协议而获得,所述上层泛型协议具有两个泛型参数;
若所述初始批量数据对象不为空对象,则以所述初始批量数据对象为输入参数,调用所述数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。
第二方面,本发明实施例还提供了一种直播间中数据的获取装置,该装置包括:
初始对象获取模块,用于获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;
目标单个数据对象生成模块,用于若所述初始单个数据对象不为空对象,则以所述初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象,其中,所述数据获取对象基于预先定义的上层泛型协议而获得,所述上层泛型协议具有两个泛型参数;
目标批量数据对象生成模块,用于若所述初始批量数据对象不为空对象,则以所述初始批量数据对象为输入参数,调用所述数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的直播间中数据的获取方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的直播间中数据的获取方法。
本发明实施例通过预先定义具有两个泛型类型的输入参数的上层泛型协议,实现了不限待获取数据的数据类型的通用数据获取协议的定义,为后续直播间虚拟礼物数据的集中式获取提供实现基础。通过获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;若初始单个数据对象不为空对象,则以初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象;若初始批量数据对象不为空对象,则以初始批量数据对象为输入参数,调用数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。实现了基于一个通用的上层泛型协议来进行不同的直播间虚拟礼物数据的获取,简化了直播间中数据的获取流程,提高了数据获取效率,且可以在同一处获得不同的直播间虚拟礼物数据,提高所获得数据的集中度,从而提高数据的管理便捷性和可维护性。
附图说明
图1是本发明实施例一中的一种直播间中数据的获取方法的流程图;
图2a是本发明实施例二中的一种直播间中数据的获取方法中的单个数据获取函数的函数实现方法的流程图;
图2b是本发明实施例二中的一种直播间中数据的获取方法中的批量数据获取函数的函数实现方法的流程图;
图3是本发明实施例三中的一种直播间中数据的获取装置的结构示意图;
图4是本发明实施例四中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的直播间中数据的获取方法可适用于Android系统中网络直播间中虚拟物品数据的获取,该虚拟物品数据(如礼物数据和道具数据等)既可以是单个虚拟物品数据,也可以是批量的多个虚拟物品数据的组合。以礼物数据为例,直播间中虚拟物品数据可以是单个礼物的数据,也可以是包含多个单个礼物数据的列表集合的数据。该方法可以由直播间中数据的获取装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有直播间相关应用程序的电子设备中,例如手机、平板电脑或智能电视等。参见图1,本实施例的方法包括:
S110、获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象。
其中,虚拟物品数据是指直播间中虚拟物品相关的数据,例如虚拟物品为直播间中的礼物,那么虚拟物品数据可以是礼物的名称、类型、标识、数量、属性及礼物内容等中的至少一项。虚拟物品数据可以是单个数据,即单个虚拟物品数据;也可以是多个数据,即批量虚拟物品数据,如由多个单个虚拟物品数据构成的虚拟物品数据列表等。单个数据对象是指用于存储单个虚拟物品数据的对象。初始单个数据对象是指未存储虚拟物品数据的单个数据对象,其可以由单个数据类实例化而生成。批量数据对象是指用于存储多个单个虚拟物品数据的对象。初始批量数据对象是指未存储虚拟物品数据的批量数据对象,其可以由批量数据类实例化而生成。由于单个虚拟物品数据和批量虚拟物品数据的数据量和数据具体内容有差异,故单个数据类和批量数据类的数据类型也有差异,两者可以是不同的数据类型,如单个数据类为bean类型,而批量数据类为字符串string类型;两者也可以是相同的数据类型,但是类的具体定义有差异,如单个数据类和批量数据类均为bean类型,只是bean类型中的字段定义有差异等。
具体地,本发明实施例中为虚拟物品数据的获取而定义了统一的数据获取协议,即后续说明的上层泛型协议,该协议需要两个输入参数,故获取虚拟物品数据时,先获取初始单个数据对象和初始批量数据对象。这两个数据对象的获取可以是根据相应的业务信息来触发,例如用户点击了赠送礼物的按钮,后台系统便根据该按钮产生相应的礼物数据获取请求,并根据该礼物数据获取请求触发两个数据对象的获取;或者是根据后台下发的礼物数据的显示更新请求触发两个数据对象的获取等。
示例性地,S110包括:若待获取的虚拟物品数据为一个单个虚拟物品数据,则获取初始单个数据对象,并将空对象确定为初始批量数据对象;若待获取的虚拟物品数据为一个批量虚拟物品数据,则获取初始批量数据对象,并将空对象确定为初始单个数据对象;若待获取的虚拟物品数据为一个单个虚拟物品数据和一个批量虚拟物品数据,则获取初始单个数据对象和初始批量数据对象。
具体地,获取数据对象时,可以根据后台系统触发的虚拟物品数据获取请求来确定虚拟物品的数量,进而确定所获取的数据对象。例如,直播间中有用户给主播送礼物,那么用户送礼物的点击操作对应在后台系统便可确定其待获取的虚拟物品数据(如礼物类型和礼物数量等)。如果待获取的虚拟物品数据为一个单个虚拟物品数据,那么就可获取初始单个数据对象。由于没有批量虚拟物品数据的获取需求,而后续数据获取函数的入参必须是两个数据对象,故可将空对象作为另一个输入参数,以替代初始批量数据对象。如果待获取的虚拟物品数据为一个批量虚拟物品数据,如礼物数据的列表集合,那么便可获取初始批量数据对象,而用空对象替代初始单个数据对象。如果待获取的虚拟物品数据既有一个单个虚拟物品数据,又有一个批量虚拟物品数据,那么便可获取初始单个数据对象和初始批量数据对象。这样设置的好处在于,可以确保后续数据获取函数的输入数据的正确性。
示例性地,S110包括:若待获取的虚拟物品数据为多个单个虚拟物品数据,则将多个单个虚拟物品数据组合为一个批量虚拟物品数据,并获取初始批量数据对象,且将空对象确定为初始单个数据对象。
具体地,如果待获取的虚拟物品数据为多个单个虚拟物品数据,那么可以将多个单个虚拟物品数据组合为一个批量虚拟物品数据,这样便可获得一个初始批量数据对象和一个空对象作为初始单个数据对象。那么后续过程便可通过一次函数调用而获得多个单个虚拟物品数据。这样设置的好处在于,显著减少函数调用次数,进一步提高数据获取效率。
S120、若初始单个数据对象不为空对象,则以初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象。
其中,数据获取对象基于预先定义的上层泛型协议而获得,上层泛型协议具有两个泛型参数。以接口来定义协议为例,预先定义一个抽象的泛型接口,用于抽象的描述虚拟物品数据(如礼物数据)获取的两种数据类型,即单个虚拟物品数据和批量虚拟物品数据。由于该泛型接口是直接提供给开发人员的API,故可将其称为上层泛型协议。具体的上层泛型协议设计如下所示:
Public interface IRepository<A,S>{
Void fetchAllGift(A)
Void fetchSingleGift(S)
}。
该上层泛型协议的名称是IRepository,主要用于封装抽象的数据获取行为,其中有两个泛型参数A和S,分别用于抽象的描述批量礼物数据和单个礼物数据的数据信息。上层泛型协议IRepository中设计了2个泛型方法,分别是批量数据获取函数fetchAllGift和单个数据获取函数fetchSingleGift。其中fetchAllGift用于表示获取批量礼物数据信息,该协议函数的返回值是一个void类型的数据,函数输入参数是IRepository的泛型参数A。fetchSingleGift用于表示获取单个礼物数据信息,该协议函数的返回值是void类型,函数输入参数是IRepository的泛型参数S。
定义上层泛型协议之后,便需要定义一个数据获取的实现类(称为数据获取类),该实现类需要继承上层泛型协议,并实现其中的协议函数。在定义实现类的过程中,需要为输入参数的泛型类型设置具体的数据类型,该具体数据类型的设定依业务需求而定,本实施例中以bean类型为例进行说明。上层泛型协议的实现类定义如下:
Class GiftRepository implements IRepository<AllGiftBean,SingleGiftBean>{
Void fetchAllGift(AllGiftBean){//获取批量礼物数据业务实现}
Void fetchSingleGift(SingleGiftBean){//获取单个礼物数据业务实现}
}。
数据获取类的类名是GiftRepository,其通过implements的方式来继承上层泛型协议IRepository,上层泛型协议IRepository传入了两个参数AllGiftBean类型和SingleGiftBean类型,这样泛型中的泛型参数A就被AllGiftBean类型替换,泛型参数S就被SingleGiftBean类型替换。AllGiftBean对应于初始批量数据对象,SingleGiftBean对应于初始单个数据对象,AllGiftBean和SingleGiftBean都满足JavaBean的规范。至此,便完成数据获取类的定义,实现了利用一个统一的数据获取类便整合了单个虚拟物品数据和批量虚拟物品数据的获取操作,使得获取数据的行为变得更集中。
具体地,根据上述说明,上层泛型协议中定义了两个协议函数,分别来获取不同的数据。在实际应用中,哪个协议函数对应的输入参数有效,便会触发相应协议函数的调用。具体实施时,先判断单个数据对象是否为空对象。如果是,说明待获取的虚拟物品数据中没有单个虚拟物品数据的获取需求,则不调用单个数据获取函数。如果否,说明需要获取单个虚拟物品数据,则需要调用单个数据获取函数。这时,便以初始单个数据对象为函数输入参数,通过数据获取对象GiftRepository来调用其中的单个数据获取函数fetchSingleGift,即GiftRepository.fetchSingleGift(SingleGiftBean)。单个数据获取函数被调用后,函数内部会进行单个虚拟物品数据的网络请求及数据获取,并将服务端返回的单个虚拟物品数据赋值给初始单个数据对象,生成目标单个数据对象。可以理解的是,该目标单个数据对象中包含获取的单个虚拟物品数据。
S130、若初始批量数据对象不为空对象,则以初始批量数据对象为输入参数,调用数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。
具体地,判断批量数据对象是否为空对象。如果是,说明待获取的虚拟物品数据中没有批量虚拟物品数据的获取需求,则不调用批量数据获取函数。如果否,说明需要获取批量虚拟物品数据,则需要调用批量数据获取函数。这时,便以初始批量数据对象为函数输入参数,通过数据获取对象GiftRepository来调用其中的批量数据获取函数fetchAllGift,即GiftRepository.fetchAllGift(AllGiftBean)。批量数据获取函数被调用后,函数内部会进行批量虚拟物品数据的网络请求及数据获取,并将服务端返回的批量虚拟物品数据赋值给初始批量数据对象,生成目标批量数据对象。可以理解的是,该目标批量数据对象中包含获取的批量虚拟物品数据。
本实施例的技术方案,通过预先定义具有两个泛型类型的输入参数的上层泛型协议,实现了不限待获取数据的数据类型的通用数据获取协议的定义,为后续直播间虚拟礼物数据的集中式获取提供实现基础。通过获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;若初始单个数据对象不为空对象,则以初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象;若初始批量数据对象不为空对象,则以初始批量数据对象为输入参数,调用数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。实现了基于一个通用的上层泛型协议来进行不同的直播间虚拟礼物数据的获取,简化了直播间中数据的获取流程,提高了数据获取效率,且可以在同一处获得不同的直播间虚拟礼物数据,提高所获得数据的集中度,从而提高数据的管理便捷性和可维护性。
实施例二
本实施例在上述实施例一的基础上,对“单个数据获取函数”的函数实现进行了进一步优化。在此基础上,还可以对“批量数据获取函数”的函数实现进行了进一步优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2a,本实施例提供的直播间中数据的获取方法中单个数据获取函数的函数实现方法包括:
S210、基于底层泛型协议及初始单个数据对象获得获取单个虚拟物品数据的第一底层协议对象。
其中,底层泛型协议是指基于泛型类型而定义的抽象协议,其不直接对应于开发人员,是单个数据获取函数和批量数据获取函数的函数功能内部实现时所用协议,故相对于上层泛型协议而成为底层泛型协议。该底层泛型协议用于实现具体的虚拟物品数据的获取操作。示例性地,底层泛型协议具有一个泛型参数。由于底层泛型协议中的协议函数是具体执行数据获取操作的,而所要获取的数据包含单个虚拟物品数据和批量虚拟物品数据,故底层泛型协议中设置了一个泛型参数,以兼容上述两种数据对应的不同数据类型。第一底层协议对象是指底层泛型协议的实现类的对象,其用于单个虚拟物品数据的获取。
具体地,为了更加快速和及时地获取虚拟物品数据,本发明实施例中设计了底层泛型协议,以实现单个数据获取函数和批量数据获取函数的函数内部功能。同样以接口为例来定义协议,具体的底层泛型协议设计如下:
Public interface IDataCallback<T>{
Void onReceiveData(T data);
Void onError(int code,String msg)
}。
该底层泛型协议的名称是IDataCallback,泛型参数是形参T。底层泛型协议IDataCallback中包含两个协议函数,即数据回调函数onReceiveData和状态回调函数onError。其中onReceiveData协议函数的返回值是void类型,入参参数是泛型T类型的数据data,该协议函数用于对数据获取的信息回调处理,这样虚拟物品数据的获取便不受限于服务端的数据返回操作而被动接收数据,而是由客户端的数据回调函数来实时主动获取客户端需求的数据。返回值是void类型的onError函数用于表示数据获取失败的回调信息,入参参数是int类型的code,用于表示错误码信息,即数据获取失败标识,String类型的msg用于表示错误的详细信息,即数据获取失败内容。
底层泛型协议定义之后,便可根据单个数据获取函数fetchSingleGift的输入参数——初始单个数据对象SingleGiftBean来指定底层泛型协议中的泛型参数T的数据类型,并进一步定义底层泛型协议的第一实现类来继承该底层泛型协议,并实现其协议函数。之后,生成第一实现类的实例化对象,即第一底层协议对象,该对象及其内部函数便可用于获取单个虚拟物品数据。
本实施例中为了进一步简化函数调用过程,将上层泛型协议和底层泛型协议进行桥接,即将上层泛型协议中协议函数的输入参数设计为底层泛型协议类型的参数,形成两层泛型协议的嵌套,那么上述上层泛型协议的设计便可为:
Public interface IRepository<A,S>{
Void fetchSingleGift(IDataCallback<S>singleDataCallback)
}。
这样,单个数据获取函数fetchSingleGift的输入参数便为底层泛型协议IDataCallback类型的第一底层协议对象singleDataCallback,且其泛型参数为IRepository协议的泛型参数S。如此,便通过泛型参数S桥接了上层泛型协议IRepository与底层泛型协议IDataCallback之间的关系,从而将fetchSingleGift函数进行了更深一层的抽象,从而进一步提高上层泛型协议IRepository对多种数据类型的兼容性。
相应地,上述数据获取类的实现类定义可为:
Class GiftRepository implements IRepository<AllGiftBean,SingleGiftBean>{
Void fetchSingleGift(IDataCallback<SingleGiftBean>singleDataCallback){//获取单个礼物数据业务实现}
}。
这样,在调用单个数据获取函数fetchSingleGift的过程中,便会在函数输入参数部分生成底层泛型协议对应的第一底层协议对象singleDataCallback,且调用第一底层协议对象中相关函数时,其函数输入参数便为单个数据获取函数fetchSingleGift的输入参数SingleGiftBean。省去了单个数据获取函数fetchSingleGift内部定义第一实现类并实例化对象的操作。
S220、在获取虚拟物品数据的网络请求成功时,以初始单个数据对象为输入参数,调用第一底层协议对象中的数据回调函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象。
具体地,利用第一底层协议对象singleDataCallback进行单个虚拟物品数据获取的实现可以为:
Figure BDA0002118741950000131
首先,通过标准的HTTP网络请求来获取单个礼物数据,由于HTTP网络请求得到的数据有可能成功,也有可能失败。如果成功,便调用第一底层协议对象singleDataCalback中的数据回调函数,将填充了单个礼物数据的目标单个数据对象SingleGiftBean回调,即singleDataCalback.onReceiveData(SingleGiftBean)。
S230、在获取虚拟物品数据的网络请求失败时,以数据获取失败标识和数据获取失败内容为输入参数,调用第一底层协议对象中的状态回调函数,获得数据获取失败信息。
具体地,根据S220的说明,如果HTTP网络请求得到的数据失败,便通过第一底层协议对象singleDataCalback中的状态回调函数,将数据获取失败标识code和数据获取失败内容msg回调,即singleDataCalback.onError(code,msg),便可回调获得数据获取失败信息。
参见图2b,本实施例提供的直播间中数据的获取方法中批量数据获取函数的函数实现方法包括:
S310、基于底层泛型协议及初始批量数据对象获得获取批量虚拟物品数据的第二底层协议对象。
其中,第二底层协议对象是指底层泛型协议的实现类的对象,其用于批量虚拟物品数据的获取。
具体地,底层泛型协议定义之后,由于地层泛型协议的泛型参数的设置,便可根据批量数据获取函数fetchAllGift的输入参数——初始批量数据对象AllGiftBean来指定底层泛型协议中的泛型参数T的数据类型,并进一步定义底层泛型协议的第二实现类来继承该底层泛型协议,并实现其协议函数。之后,生成第二实现类的实例化对象,即第二底层协议对象,该对象及其内部函数便可用于获取批量虚拟物品数据。
同样地,为了进一步简化函数调用过程,基于两层泛型协议的嵌套,上述上层泛型协议中批量数据获取函数的设计可为:
Public interface IRepository<A,S>{
Void fetchAllGift(IDataCallback<A>allDataCallback)
}。
这样,批量数据获取函数fetchAllGift的输入参数便为底层泛型协议IDataCallback类型的第二底层协议对象allDataCallback,且其泛型参数为IRepository协议的泛型参数A。如此,便通过泛型参数A和S桥接了上层泛型协议IRepository与底层泛型协议IDataCallback之间的关系,从而将fetchAllGift函数进行了更深一层的抽象,从而进一步提高上层泛型协议IRepository对多种数据类型的兼容性。
相应地,上述数据获取类的实现类定义可为:
Class GiftRepository implements IRepository<AllGiftBean,SingleGiftBean>{
Void fetchAllGift(IDataCallback<AllGiftBean>allDataCallback){//获取批量礼物数据业务实现}
}。
这样,在调用批量数据获取函数fetchAllGift的过程中,便会在函数输入参数部分生成底层泛型协议对应的第二底层协议对象allDataCallback,且调用第二底层协议对象中相关函数时,其函数输入参数便为批量数据获取函数fetchAllGift的输入参数AllGiftBean。省去了批量数据获取函数fetchAllGift内部定义第二实现类并实例化对象的操作。
S320、在获取虚拟物品数据的网络请求成功时,以初始批量数据对象为输入参数,调用第二底层协议对象中的数据回调函数,获得包含待获取的批量虚拟物品数据的目标批量数据对象。
具体地,利用第二底层协议对象allDataCallback进行批量虚拟物品数据获取的实现可以为:
Figure BDA0002118741950000151
Figure BDA0002118741950000161
首先,通过标准的HTTP网络请求来获取批量礼物数据,由于HTTP网络请求得到的数据有可能成功,也有可能失败。如果成功,便调用第二底层协议对象allDataCalback中的数据回调函数,将填充了批量礼物数据的目标批量数据对象AllGiftBean回调,即allDataCalback.onReceiveData(AllGiftBean)。
S330、在获取虚拟物品数据的网络请求失败时,以数据获取失败标识和数据获取失败内容为输入参数,调用第二底层协议对象中的状态回调函数,获得数据获取失败信息。
具体地,根据S320的说明,如果HTTP网络请求得到的数据失败,便通过第二底层协议对象allDataCalback中的状态回调函数,将数据获取失败标识code和数据获取失败内容msg回调,即allDataCalback.onError(code,msg),便可回调获得数据获取失败信息。
本实施例的技术方案,通过具有一个泛型参数的底层泛型协议及其内部协议函数的设计,提高了虚拟物品数据的获取速度,进一步提高了数据获取效率。通过上层泛型协议中的两个泛型参数桥接了上层泛型协议与底层泛型协议之间的关系,从而将单个数据获取函数和批量数据获取函数进行了更深一层的抽象,从而进一步提高上层泛型协议对多种数据类型的兼容性,提高了不同类型的虚拟物品数据获取的集中程度,进一步提高了所获得数据的管理便捷性。
以下是本发明实施例提供的直播间中数据的获取装置的实施例,该装置与上述各实施例的直播间中数据的获取方法属于同一个发明构思,在直播间中数据的获取装置的实施例中未详尽描述的细节内容,可以参考上述直播间中数据的获取方法的实施例。
实施例三
本实施例提供一种直播间中数据的获取装置,参见图3,该装置具体包括:
初始对象获取模块410,用于获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;
目标单个数据对象生成模块420,用于若初始单个数据对象不为空对象,则以初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象,其中,数据获取对象基于预先定义的上层泛型协议而获得,上层泛型协议具有两个泛型参数;
目标批量数据对象生成模块430,用于若初始批量数据对象不为空对象,则以初始批量数据对象为输入参数,调用数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。
可选地,在上述装置的基础上,该装置还包括第一函数实现模块,用于通过如下方式实现生成包含待获取的单个虚拟物品数据的目标单个数据对象的功能:
基于底层泛型协议及初始单个数据对象获得获取单个虚拟物品数据的第一底层协议对象,底层泛型协议具有一个泛型参数;
在获取虚拟物品数据的网络请求成功时,以初始单个数据对象为输入参数,调用第一底层协议对象中的数据回调函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象。
进一步地,第一函数实现模块具体用于:
在基于底层泛型协议及初始单个数据对象获得获取单个虚拟物品数据的第一底层协议对象之后,在获取虚拟物品数据的网络请求失败时,以数据获取失败标识和数据获取失败内容为输入参数,调用第一底层协议对象中的状态回调函数,获得数据获取失败信息。
可选地,在上述装置的基础上,该装置还包括第二函数实现模块,用于通过如下方式实现获得包含待获取的批量虚拟物品数据的目标批量数据对象的功能:
基于底层泛型协议及初始批量数据对象获得获取批量虚拟物品数据的第二底层协议对象;
在获取虚拟物品数据的网络请求成功时,以初始批量数据对象为输入参数,调用第二底层协议对象中的数据回调函数,获得包含待获取的批量虚拟物品数据的目标批量数据对象。
进一步地,第二函数实现模块具体用于:
在基于底层泛型协议及初始批量数据对象获得获取批量虚拟物品数据的第二底层协议对象之后,在获取虚拟物品数据的网络请求失败时,以数据获取失败标识和数据获取失败内容为输入参数,调用第二底层协议对象中的状态回调函数,获得数据获取失败信息。
可选地,初始对象获取模块410具体用于:
若待获取的虚拟物品数据为一个单个虚拟物品数据,则获取初始单个数据对象,并将空对象确定为初始批量数据对象;
若待获取的虚拟物品数据为一个批量虚拟物品数据,则获取初始批量数据对象,并将空对象确定为初始单个数据对象;
若待获取的虚拟物品数据为一个单个虚拟物品数据和一个批量虚拟物品数据,则获取初始单个数据对象和初始批量数据对象。
可选地,初始对象获取模块410还具体用于:
若待获取的虚拟物品数据为多个单个虚拟物品数据,则将多个单个虚拟物品数据组合为一个批量虚拟物品数据,并获取初始批量数据对象,且将空对象确定为初始单个数据对象。
通过本发明实施例三的一种直播间中数据的获取装置,实现了基于一个通用的上层泛型协议来进行不同的直播间虚拟礼物数据的获取,简化了直播间中数据的获取流程,提高了数据获取效率,且可以在同一处获得不同的直播间虚拟礼物数据,提高所获得数据的集中度,从而提高数据的管理便捷性和可维护性。
本发明实施例所提供的直播间中数据的获取装置可执行本发明任意实施例所提供的直播间中数据的获取方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述直播间中数据的获取装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
参见图4,本实施例提供了一种电子设备500,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器520执行,使得一个或多个处理器520实现本发明实施例所提供的直播间中数据的获取方法,包括:
获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;
若初始单个数据对象不为空对象,则以初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象,其中,数据获取对象基于预先定义的上层泛型协议而获得,上层泛型协议具有两个泛型参数;
若初始批量数据对象不为空对象,则以初始批量数据对象为输入参数,调用数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。
当然,本领域技术人员可以理解,处理器520还可以实现本发明任意实施例所提供的直播间中数据的获取方法的技术方案。
图4显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图4所示,该电子设备500包括处理器520、存储装置510、输入装置530和输出装置540;电子设备中处理器520的数量可以是一个或多个,图4中以一个处理器520为例;电子设备中的处理器520、存储装置510、输入装置530和输出装置540可以通过总线或其他方式连接,图4中以通过总线550连接为例。
存储装置510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的直播间中数据的获取方法对应的程序指令/模块(例如,直播间中数据的获取装置中的初始对象获取模块、目标单个数据对象生成模块和目标批量数据对象生成模块)。
存储装置510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例五
本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种直播间中数据的获取方法,该方法包括:
获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;
若初始单个数据对象不为空对象,则以初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象,其中,数据获取对象基于预先定义的上层泛型协议而获得,上层泛型协议具有两个泛型参数;
若初始批量数据对象不为空对象,则以初始批量数据对象为输入参数,调用数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟礼物数据的目标批量数据对象。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的直播间中数据的获取方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机或个人计算机等)执行本发明各个实施例所提供的直播间中数据的获取方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种直播间中数据的获取方法,其特征在于,包括:
获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;
若所述初始单个数据对象不为空对象,则以所述初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象,其中,所述数据获取对象基于预先定义的上层泛型协议而获得,所述上层泛型协议具有两个泛型参数;
若所述初始批量数据对象不为空对象,则以所述初始批量数据对象为输入参数,调用所述数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟物品数据的目标批量数据对象。
2.根据权利要求1所述的方法,其特征在于,所述单个数据获取函数通过如下方式实现生成包含待获取的单个虚拟物品数据的目标单个数据对象的功能:
基于底层泛型协议及所述初始单个数据对象获得获取单个虚拟物品数据的第一底层协议对象,所述底层泛型协议具有一个泛型参数;
在获取虚拟物品数据的网络请求成功时,以所述初始单个数据对象为输入参数,调用所述第一底层协议对象中的数据回调函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象。
3.根据权利要求2所述的方法,其特征在于,在基于底层泛型协议及所述初始单个数据对象获得获取单个虚拟物品数据的第一底层协议对象之后,还包括:
在获取虚拟物品数据的网络请求失败时,以数据获取失败标识和数据获取失败内容为输入参数,调用所述第一底层协议对象中的状态回调函数,获得数据获取失败信息。
4.根据权利要求1所述的方法,其特征在于,所述批量数据获取函数通过如下方式实现获得包含待获取的批量虚拟物品数据的目标批量数据对象的功能:
基于底层泛型协议及所述初始批量数据对象获得获取批量虚拟物品数据的第二底层协议对象;
在获取虚拟物品数据的网络请求成功时,以所述初始批量数据对象为输入参数,调用所述第二底层协议对象中的数据回调函数,获得包含待获取的批量虚拟物品数据的目标批量数据对象。
5.根据权利要求4所述的方法,其特征在于,在基于底层泛型协议及所述初始批量数据对象获得获取批量虚拟物品数据的第二底层协议对象之后,还包括:
在获取虚拟物品数据的网络请求失败时,以数据获取失败标识和数据获取失败内容为输入参数,调用所述第二底层协议对象中的状态回调函数,获得数据获取失败信息。
6.根据权利要求1所述的方法,其特征在于,获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象包括:
若所述待获取的虚拟物品数据为一个所述单个虚拟物品数据,则获取所述初始单个数据对象,并将所述空对象确定为所述初始批量数据对象;
若所述待获取的虚拟物品数据为一个所述批量虚拟物品数据,则获取所述初始批量数据对象,并将所述空对象确定为所述初始单个数据对象;
若所述待获取的虚拟物品数据为一个所述单个虚拟物品数据和一个所述批量虚拟物品数据,则获取所述初始单个数据对象和所述初始批量数据对象。
7.根据权利要求1所述的方法,其特征在于,获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象包括:
若所述待获取的虚拟物品数据为多个所述单个虚拟物品数据,则将多个所述单个虚拟物品数据组合为一个所述批量虚拟物品数据,并获取所述初始批量数据对象,且将所述空对象确定为所述初始单个数据对象。
8.一种直播间中数据的获取装置,其特征在于,包括:
初始对象获取模块,用于获取待获取的虚拟物品数据对应的初始单个数据对象和初始批量数据对象;
目标单个数据对象生成模块,用于若所述初始单个数据对象不为空对象,则以所述初始单个数据对象为输入参数,调用数据获取对象中的单个数据获取函数,生成包含待获取的单个虚拟物品数据的目标单个数据对象,其中,所述数据获取对象基于预先定义的上层泛型协议而获得,所述上层泛型协议具有两个泛型参数;
目标批量数据对象生成模块,用于若所述初始批量数据对象不为空对象,则以所述初始批量数据对象为输入参数,调用所述数据获取对象中的批量数据获取函数,生成包含待获取的批量虚拟物品数据的目标批量数据对象。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的直播间中数据的获取方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的直播间中数据的获取方法。
CN201910599269.9A 2019-07-02 2019-07-02 直播间中数据的获取方法、装置、设备和存储介质 Active CN110324722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910599269.9A CN110324722B (zh) 2019-07-02 2019-07-02 直播间中数据的获取方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910599269.9A CN110324722B (zh) 2019-07-02 2019-07-02 直播间中数据的获取方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN110324722A CN110324722A (zh) 2019-10-11
CN110324722B true CN110324722B (zh) 2021-07-23

Family

ID=68122728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910599269.9A Active CN110324722B (zh) 2019-07-02 2019-07-02 直播间中数据的获取方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN110324722B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339420B (zh) * 2020-10-09 2024-05-17 北京神州数码云科信息技术有限公司 一种拉流方法、装置、电子设备及存储介质
CN115134613A (zh) * 2021-03-29 2022-09-30 武汉斗鱼网络科技有限公司 一种直播间信息的获取方法及相关装置
CN113569182A (zh) * 2021-07-29 2021-10-29 武汉斗鱼鱼乐网络科技有限公司 一种数据处理方法、装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009027264A (ja) * 2007-07-17 2009-02-05 Shoei Gas Kk ライブ動画遠隔監視システム
CN109062650A (zh) * 2018-08-01 2018-12-21 武汉斗鱼网络科技有限公司 弹幕消息分发方法、装置、设备及存储介质
CN109144633A (zh) * 2018-07-20 2019-01-04 武汉斗鱼网络科技有限公司 活动窗口的数据共享方法、装置、设备及存储介质
CN109388388A (zh) * 2018-09-30 2019-02-26 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953530B1 (en) * 2006-06-08 2011-05-31 Pederson Neal R Vehicle diagnostic tool

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009027264A (ja) * 2007-07-17 2009-02-05 Shoei Gas Kk ライブ動画遠隔監視システム
CN109144633A (zh) * 2018-07-20 2019-01-04 武汉斗鱼网络科技有限公司 活动窗口的数据共享方法、装置、设备及存储介质
CN109062650A (zh) * 2018-08-01 2018-12-21 武汉斗鱼网络科技有限公司 弹幕消息分发方法、装置、设备及存储介质
CN109388388A (zh) * 2018-09-30 2019-02-26 武汉斗鱼网络科技有限公司 功能模块间的信息交互方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110324722A (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
CN109032691B (zh) 一种小程序运行方法、装置及存储介质
CN110324722B (zh) 直播间中数据的获取方法、装置、设备和存储介质
WO2023093429A1 (zh) 微应用的运行方法、装置、设备、存储介质及程序产品
CN110753129A (zh) 消息传输方法、系统、装置、设备及计算机可读存储介质
CN107818023B (zh) 基于线程的消息处理方法、智能设备及存储介质
CN108536492B (zh) 一种直播间属性信息获取方法、装置、设备及存储介质
CN112068923B (zh) 界面更新方法和装置
CN114531477B (zh) 功能组件的配置方法、装置、计算机设备和存储介质
CN109343983B (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN113626225B (zh) 程序调用方法、终端设备及介质
WO2024165011A1 (zh) 插件添加方法、装置、电子设备及存储介质
CN109388388B (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN114222003A (zh) 服务调用方法、系统、装置、设备及存储介质
CN109062650B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN112506590A (zh) 接口调用方法、装置及电子设备
CN116233217B (zh) 基于路由的页面跳转方法、装置、电子设备及存储介质
CN110673827B (zh) 基于安卓系统的资源调用方法及装置、电子设备
CN109089163B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN105095010B (zh) 一种针对存储设备的公共信息模型功能的校验方法及系统
CN110262912B (zh) 一种过程调用gRPC的调用方法及装置
CN113760325A (zh) 容器环境更新方法及装置
CN114675912A (zh) 主题皮肤切换方法、装置、计算机设备及计算机存储介质
CN112667441A (zh) 基于容错功能的业务模块调度方法、系统及存储介质
CN112650763A (zh) 产品额度的配置方法、相关设备和存储介质
CN113050962A (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20191011

Assignee: Hubei Special Automobile Network Technology Co.,Ltd.

Assignor: WUHAN DOUYU YULE NETWORK TECHNOLOGY Co.,Ltd.

Contract record no.: X2023980034619

Denomination of invention: Method, device, device, and storage medium for obtaining data in live streaming rooms

Granted publication date: 20210723

License type: Common License

Record date: 20230414

EE01 Entry into force of recordation of patent licensing contract