CN109495782B - 一种弹幕消息的存储方法、系统和存储介质 - Google Patents

一种弹幕消息的存储方法、系统和存储介质 Download PDF

Info

Publication number
CN109495782B
CN109495782B CN201811276099.2A CN201811276099A CN109495782B CN 109495782 B CN109495782 B CN 109495782B CN 201811276099 A CN201811276099 A CN 201811276099A CN 109495782 B CN109495782 B CN 109495782B
Authority
CN
China
Prior art keywords
target
information
storage object
bullet screen
array
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
CN201811276099.2A
Other languages
English (en)
Other versions
CN109495782A (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 CN201811276099.2A priority Critical patent/CN109495782B/zh
Publication of CN109495782A publication Critical patent/CN109495782A/zh
Application granted granted Critical
Publication of CN109495782B publication Critical patent/CN109495782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4332Content storage operation, e.g. storage operation in response to a pause request, caching operations by placing content in organized collections, e.g. local EPG data repository
    • 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/43Processing 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种弹幕消息的存储方法、系统和存储介质。该方法包括:客户端接收服务器发送的目标弹幕消息,并确定目标弹幕消息中的目标类名和目标包名;客户端将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象;客户端通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中。通过本发明实施例的技术方案,无需根据弹幕消息类型进行存储,从而降低了系统内存,提高了存储速度,进而也提高了弹幕消息的分发时效性。

Description

一种弹幕消息的存储方法、系统和存储介质
技术领域
本发明实施例涉及弹幕技术领域,尤其涉及一种弹幕消息的存储方法、系统和存储介质。
背景技术
随着智能终端的快速发展,各种应用软件被开发应用于智能终端中。一些应用软件比如直播软件、视频播放软件中往往具有弹幕功能,以便用户在观看直播的过程中,可以通过发送弹幕的方式来表达自己的情感。其中,弹幕服务包括用户弹幕接收、处理和分发等重要功能。当客户端接收到弹幕服务器发送的弹幕消息后,需要对弹幕消息进行解析,从而可以将用户需要展示的弹幕消息在客户端界面中进行展示。
在弹幕消息的解析过程中,需要将解析后的弹幕消息进行存储。现有技术在对弹幕消息进行存储时,往往根据弹幕消息类型来确定相应的存储对象。在获取弹幕消息类型时,首先需定义一个类型筛选的数据结构。传统方案中用于弹幕类型筛选的数据结构都是人为定义的一个字符串或者一个整数作为唯一标识符,但是不同的开发人员定义的字符串或者整数可能会出现重复的可能性,从而无法保证弹幕消息类型的唯一性。而且在客户端本地中存储弹幕消息类型与存储对象之间的对应关系需要消耗较大的系统内存,并且在弹幕消息较多时,根据弹幕消息类型来查找相应存储对象的过程耗时较长,从而降低了弹幕消息的分发时效性。
发明内容
本发明实施例提供了一种弹幕消息的存储方法、系统和存储介质,无需根据弹幕消息类型进行存储,从而降低了系统内存,提高了存储速度,进而也提高了弹幕消息的分发时效性。
第一方面,本发明实施例提供了一种弹幕消息的存储方法,包括:
客户端接收服务器发送的目标弹幕消息,并确定所述目标弹幕消息中的目标类名和目标包名;
所述客户端将所述目标类名和所述目标包名作为函数输入参数,调用类查询函数,确定与所述目标弹幕消息对应的class类型的目标存储对象;
所述客户端通过反射扫描方式,将所述目标弹幕消息中的目标参数信息存储至所述目标存储对象中。
第二方面,本发明实施例还提供了一种弹幕消息的存储系统,所述系统包括服务器和至少一个客户端;其中,所述客户端包括:
目标类名包名确定模块,用于接收服务器发送的目标弹幕消息,并确定所述目标弹幕消息中的目标类名和目标包名;
目标存储对象确定模块,用于将所述目标类名和所述目标包名作为函数输入参数,调用类查询函数,确定与所述目标弹幕消息对应的class类型的目标存储对象;
目标参数信息存储模块,用于通过反射扫描方式,将所述目标弹幕消息中的目标参数信息存储至所述目标存储对象中。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的弹幕消息的存储方法。
本发明实施例中客户端在接收到服务器发送的目标弹幕消息后,通过确定目标弹幕消息中的目标类名和目标包名,将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象;通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中。客户端基于反射方式,根据类名和包名确定唯一对应的存储对象,并且无需存储弹幕消息类型与存储对象之间的对应关系,从而降低了系统内存,提高了运行效率。而且通过反射扫描方式,可以将目标弹幕消息中的目标参数信息快速地存储至目标存储对象中,提高了存储速度,进而也提高了弹幕消息的分发时效性。
附图说明
图1是本发明实施例一提供的一种弹幕消息的存储方法的流程图;
图2是本发明实施例二提供的一种弹幕消息的存储方法的流程图;
图3是本发明实施例三提供的一种弹幕消息的存储系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种弹幕消息的存储方法的流程图,本实施例可适用于存储弹幕服务器下发的弹幕消息的情况。该方法可以由弹幕消息的存储系统中的客户端来执行,客户端可以为搭载了Android系统的具有弹幕功能的智能终端,比如,智能手机、平板电脑或笔记本电脑等。参见图1,该方法具体包括以下步骤:
S110、客户端接收服务器发送的目标弹幕消息,并确定目标弹幕消息中的目标类名和目标包名。
其中,目标弹幕消息可以是指弹幕服务器向客户端下发的弹幕消息,以于客户端上进行弹幕消息的存储和展示。目标类名和目标包名分别是指目标存储对象bean对应的类名和包名。目标类名和目标包名可以是字符串string类型的数据。本实施例中的目标弹幕消息可以包括目标类名和目标包名,以便可以根据目标弹幕消息来获得目标类名和目标包名。
具体地,客户端在接收到服务器发送的目标弹幕消息后,可以对目标弹幕消息进行预解析,确定目标弹幕消息中的目标类名和目标包名。示例性地,确定的目标包名packageName为:com.douyu.bean,目标类名className为:BgColor。
S120、客户端将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象。
其中,类查询函数可以是预先定义的,用于根据类名和包名查询对应的目标存储对象。本实施例中的目标存储对象bean是一个class类型的抽象对象。例如,类查询函数可以是系统类Class中的函数Class.forName(“包名.类名”)。
具体地,本实施例中的每个弹幕消息均对应唯一的一个存储对象bean对象。为了保证存储对象的唯一性,可以基于Java反射机制,根据目标类名和目标包名来确定唯一的目标存储对象,以便可以准确地存储目标弹幕消息。示例性地,若目标包名为:com.douyu.bean,目标类名为BgColor,则可以通过调用Class cls=Class.forName(“com.douyu.bean.BgColor”),确定与目标弹幕消息对应的class类型的目标存储对象cls。
S130、客户端通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中。
其中,本实施例中的目标弹幕消息还包括目标参数信息。目标参数信息可以是指将弹幕参数按照预设弹幕协议进行封装后获得的String类型的数据。预设弹幕协议可以根据实际情况和用户需求进行预先设置,用于规定弹幕消息的传输数据结构,以使弹幕服务器与客户端之间可以进行数据传输。示例性地,目标参数信息可以键值对的形式存在。反射扫描方式可以是指基于反射机制来动态加载class类型的目标存储对象后,获得该目标存储对象的相关信息,比如获得目标存储对象中的各属性字段、各设置方法(set方法)以及各读取方法(get方法)等,并对目标存储对象中的相关信息进行扫描和校验的方式。
具体地,客户端可以对目标弹幕消息中的目标参数信息进行解析,确定各个参数信息。本实施例可以通过反射扫描方式对目标存储对象中的相关信息进行扫描和校验,检测各个参数信息与目标存储对象中的信息是否相匹配,以便确定目标存储对象是否可以真正地用于存储目标弹幕消息,若是,则在扫描的过程中,将目标弹幕消息中的各个参数信息存储至目标存储对象中相应的位置,从而可以快速且准确地进行弹幕消息的存储。
本发明实施例的技术方案,客户端在接收到服务器发送的目标弹幕消息后,通过确定目标弹幕消息中的目标类名和目标包名,将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象;通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中。客户端基于反射方式,根据类名和包名确定唯一对应的存储对象,并且无需存储弹幕消息类型与存储对象之间的对应关系,从而降低了系统内存,提高了运行效率。而且通过反射扫描方式,可以将目标弹幕消息中的目标参数信息快速地存储至目标存储对象中,提高了存储速度,进而也提高了弹幕消息的分发时效性。
在上述技术方案的基础上,在客户端接收服务器发送的目标弹幕消息之前,还可以包括:服务器根据客户端发送的弹幕请求信息,确定与弹幕请求信息对应的目标参数信息;服务器根据目标参数信息中的目标类型信息,以及类型信息与类名和包名之间的对应关系,确定目标类名和目标包名;服务器根据目标参数信息、目标类名和目标包名确定目标弹幕消息,并将目标弹幕消息发送至客户端。
其中,弹幕请求信息可以是指客户端向弹幕服务器发送的请求目标弹幕消息的信息。弹幕请求信息可以包括但不限于请求标识。目标参数信息可以包括弹幕消息的目标类型信息(type)以及其它参数信息。本实施例中的类型信息与类名和包名是一一对应关系,即每个类型信息均唯一对应一个类名和一个包名,以使每个弹幕消息唯一对应一个存储对象bean。
具体地,本实施例可以根据弹幕请求信息中的请求标识来确定与该弹幕请求信息对应的目标参数信息。并根据类型信息与类名和包名之间的一一对应关系,确定目标参数信息中的目标类型信息对应的目标类名和目标包名。弹幕服务器通过将目标参数信息、目标包名和目标类名按照预设弹幕协议进行封装,从而获得目标弹幕消息,并将目标弹幕信息发送至客户端,以于客户端上进行解析和存储。本实施例通过将类型信息与类名和包名之间的对应关系存储至弹幕服务器中,而非客户端中,从而降低了客户端的系统内存,提高了运行效率。并且弹幕服务器根据该对应关系来查询目标类型信息对应的目标类名和目标包名的速度更快,使得客户端只需根据包名和类名来确定存储对象,提升了的存储速度。
实施例二
图2为本发明实施例二提供的一种弹幕消息的存储方法的流程图,本实施例在上述实施例的基础上,对“通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例提供的弹幕消息的存储方法具体包括:
S210、客户端接收服务器发送的目标弹幕消息,并确定目标弹幕消息中的目标类名和目标包名。
S220、客户端将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象。
S230、对目标弹幕消息中的目标参数信息进行解析,确定各键值对信息。
其中,每个键值对信息均包括一个键信息(key)和一个值信息(value)。本实施例中目标参数信息中的各个参数信息均以键值对的形式存在。
示例性地,目标参数信息可以为:type@=uenter/rid@=104838/uid@=20080138/wgei@=0/。其中,目标参数信息以分隔符“/”分隔每个键值对信息,以连接符“@=”连接键值对信息中的键信息和值信息,并且包括四个键值对信息。第一键值对信息中的键信息为“type”,对应的值信息为“uenter”;第二键值对信息中的键信息为“rid”,对应的值信息为“104838”;第三键值对信息中的键信息为“uid”,对应的值信息为“20080138”;第四键值对信息中的键信息为“wgei”,对应的值信息为“0”。
具体地,本实施例在对目标参数信息进行解析时,可以利用字符串分割函数split()对目标参数信息按照分隔符进行分割,从而获得目标参数信息中的每个键值对信息。示例性,若存储目标参数信息的对象为danmuStr,则可以以分隔符“/”为函数输入参数,调用对象danmuStr中的字符串分割函数danmuStr.spl it(“\/”),将目标参数信息以“/”进行分割,从而获得各个键值对信息,如:“t ype@=uenter”、“rid@=104838”、“uid@=20080138”和“wgei@=0”。在获得每个键值对信息后,还可以以连接符“@=”为函数输入参数,调用字符串分割函数split(“\@=”),将每个键值对信息以“@=”进行分割,从而获得每个键值对信息中的键信息和值信息。
S240、调用目标存储对象中的属性字段获取函数,确定由目标存储对象中的各属性字段组成的属性字段数组。
其中,属性字段是class类型的目标存储对象中的成员变量,如type等。属性字段获取函数可以是预先定义的,用于获取目标存储对象中所有的属性字段组成的属性字段数组。示例性地,属性字段获取函数可以为:getFileds。
示例性地,若目标存储对象为cls,则可以通过调用目标存储对象cls中的Filed f[]=cls.getFileds(),将cls中的每个属性字段作为一个数组元素,存储至属性字段数组中,从而获得属性字段数组f[]。
S250、调用目标存储对象中的处理方法获取函数,确定由目标存储对象中的各设置方法和各读取方法组成的处理方法数组。
其中,处理方法包括设置方法(set方法)和读取方法(get方法),并且每个属性字段通常对应一个设置方法和一个读取方法,其中设置方法可以用于将参数信息存储至目标存储对象中,读取方法可以用于读取目标存储对象中的参数信息,以进行弹幕消息的展示。例如,Type属性字段对应的设置方法为:setType,对应的读取方法为:getType,通过调用setType()可以为目标存储对象中的Type属性赋值,通过调用getType()可以读取目标存储对象中的Type属性值。处理方法获取函数可以是预先定义的,用于获取目标存储对象中所有的处理方法组成的处理方法数组。示例性地,处理方法获取函数可以为:getMethods。
示例性地,若目标存储对象为cls,则可以通过调用目标存储对象cls中的Methodm[]=cls.getMethods(),将cls中的每个处理方法作为一个数组元素,存储至处理方法数组中,从而获得处理方法数组m[]。
需要说明的是,此处不限定步骤S230、S240和S250的执行顺序。比如步骤S230可以在执行步骤S240和S250之后执行,也可以在步骤S240与S250之间执行。
S260、通过反射扫描方式,根据属性字段数组和处理方法数组,将每个键值对信息中的值信息存储至目标存储对象中。
具体地,根据每个键值对信息中的键信息,扫描属性字段数组和处理方法数组,检测该属性字段数组中是否存在与每个键信息相同的属性字段,以及该处理方法数组中是否存在与每个键信息对应的处理方法。若均存在,则表明可以利用该目标存储对象中的处理方法,将键值对信息中的值信息存储至属性字段的相应位置。
本发明实施例的技术方案,通过对目标弹幕消息中的目标参数信息进行解析,确定各键值对信息,并根据目标存储对象中的各属性字段组成的属性字段数组,以及各设置方法和各读取方法组成的处理方法数组,通过反射扫描方式,将每个键值对信息中的值信息存储至目标存储对象中相应的属性字段,从而可以准确无误且更加快捷地将目标弹幕信息存储至唯一的目标存储对象中。
在上述技术方案的基础上,S260可以包括:将各键值对信息逐个确定为目标键值对信息;将目标键值对信息中的目标键信息与属性字段数组中的各属性字符进行匹配,并将匹配成功的属性字段作为目标属性字段;检测处理方法数组中是否存在与目标属性字段对应的目标设置方法和目标读取方法;若是,则以目标键值对信息中的目标值信息为输入参数,调用目标设置方法,将目标值信息作为目标属性字段的属性值,存储至目标存储对象中。
具体地,本实施例可以通过将所有键值对信息逐个确定为目标键值对信息,通过循环的方式逐个将每个键值对信息中的值信息作为属性字段的属性值,存储至目标存储对象中。在每次循环过程中,通过将目标键值对信息中的目标键信息与属性字段数组中的每个属性字段进行匹配,若匹配成功,则表示目标存储对象中存在与目标键信息相同的属性字段,此时可以将匹配成功的属性字段确定为目标属性字段。然后再检测处理方法数组中是否存在与目标属性字段对应的目标设置方法和目标读取方法,若存在,则表明目标值信息可以通过目标设置方法存储至目标存储对象中,即将目标值信息作为目标属性字段的属性值,从而完成目标值信息的存储。基于相同的扫描存储过程,在目标存储对象满足存储条件时,可以将每个键值对信息中的值信息作为相应属性字段的属性值,存储至目标存储对象中,以便后续可以快速地对该目标存储对象存储的弹幕消息进行分发,保证了分发的时效性。
在上述技术方案的基础上,还可以包括:若目标键值对信息中的目标键信息与属性字段数组中的每个属性字符均匹配失败,或者处理方法数组中不存在与目标属性字段对应的目标设置方法和目标读取方法,则执行异常处理操作,输出异常错误信息。
其中,异常处理操作可以是指在程序出现异常时,对异常情况进行捕获和处理,以保证程序可以继续运行的操作。示例性地,异常处理操作可以使用异常处理语句,如try…catch语句对异常进行处理。异常错误信息是指出现异常的原因。本实施例中的异常错误信息可以为:目标键值对信息中的目标键信息与属性字段数组中的每个属性字符均匹配失败,或者处理方法数组中不存在与目标属性字段对应的目标设置方法和目标读取方法。
具体地,当目标键值对信息中的目标键信息与属性字段数组中的每个属性字符均匹配失败,或者处理方法数组中不存在与目标属性字段对应的目标设置方法和目标读取方法,则可以执行异常处理操作,通过try语句捕获异常对象后,自动与catch中的异常类型相匹配,若匹配成功,则可以执行catch块中的语句处理异常,输出对应的异常错误信息,从而可以避免程序在出现异常时立即退出,进而可以继续执行其他正常程序,提高执行效率。并且在程序运行结束后,可以准确便捷地获得异常原因以及异常位置。
在上述技术方案的基础上,在S260之前,还可以包括:获取属性字段数组的数组长度,并检测键值对信息的数量是否等于数组长度;相应地,S260包括:若键值对信息的数量等于数组长度,则通过反射扫描方式,根据属性字段数组和处理方法数组,将每个键值对信息中的值信息存储至目标存储对象中。
其中,属性字段数组的数组长度是指属性字段数组中的元素个数。
具体地,本实施例可以根据属性字段数组的长度属性,直接获取属性字段数组的数组长度,即目标存储对象中属性字段的个数。示例性地,可以通过调用SrtArray.length,可以获得属性字段数组SrtArray的数组长度。本实施例检测键值对信息的数量是否等于该数组长度,若是,则表明键值对信息的数量与目标存储对象中的属性字段的数量相等,即键信息与属性字段是一一对应的,此时可以继续进行后续的存储操作,即通过反射扫描方式,根据属性字段数组和处理方法数组,将每个键值对信息中的值信息存储至目标存储对象中。若否,则表明键值对信息的数量与目标存储对象中的属性字段的数量不相等,即无法利用目标存储对象来准确地存储目标弹幕消息中的各键值对象信息,此时也可以执行异常处理操作,对该异常情况进行捕获和处理。
以下是本发明实施例提供的弹幕消息的存储系统的实施例,该系统与上述各实施例的弹幕消息的存储方法属于同一个发明构思,在弹幕消息的存储系统的实施例中未详尽描述的细节内容,可以参考上述弹幕消息的存储方法的实施例。
实施例三
图3为本发明实施例三提供的一种弹幕消息的存储系统的结构示意图,本实施例可适用于存储弹幕服务器下发的弹幕消息的情况,该系统具体可以包括:服务器31和至少一个客户端32;其中,客户端32包括:目标类名包名确定模块321、目标存储对象确定模块322和目标参数信息存储模块323。
其中,目标类名包名确定模块321,用于接收服务器发送的目标弹幕消息,并确定目标弹幕消息中的目标类名和目标包名;目标存储对象确定模块322,用于将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象;目标参数信息存储模块323,用于通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中。
具体地,本实施例通过将服务器31与每个客户端32进行连接,以便服务器可以将目标弹幕消息下发至客户端32中,客户端32在接收到服务器发送的目标弹幕消息后,通过确定目标弹幕消息中的目标类名和目标包名,将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象;通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中。客户端32基于反射方式,根据类名和包名确定唯一对应的存储对象,并且无需存储弹幕消息类型与存储对象之间的对应关系,从而降低了系统内存,提高了运行效率。而且通过反射扫描方式,可以将目标弹幕消息中的目标参数信息快速地存储至目标存储对象中,提高了存储速度,进而也提高了弹幕消息的分发时效性。
可选地,目标参数信息存储模块323,包括:
键值对信息确定单元,用于对目标弹幕消息中的目标参数信息进行解析,确定各键值对信息;属性字段数组确定单元,用于调用目标存储对象中的属性字段获取函数,确定由目标存储对象中的各属性字段组成的属性字段数组;处理方法数组确定单元,用于调用目标存储对象中的处理方法获取函数,确定由目标存储对象中的各设置方法和各读取方法组成的处理方法数组;键值对信息存储单元,用于通过反射扫描方式,根据属性字段数组和处理方法数组,将每个键值对信息中的值信息存储至目标存储对象中。
可选地,键值对信息存储单元,具体用于:
将各键值对信息逐个确定为目标键值对信息;将目标键值对信息中的目标键信息与属性字段数组中的各属性字符进行匹配,并将匹配成功的属性字段作为目标属性字段;检测处理方法数组中是否存在与目标属性字段对应的目标设置方法和目标读取方法;若是,则以目标键值对信息中的目标值信息为输入参数,调用目标设置方法,将目标值信息作为目标属性字段的属性值,存储至目标存储对象中。
可选地,该客户端32还包括:
异常处理模块,用于若目标键值对信息中的目标键信息与属性字段数组中的每个属性字符均匹配失败,或者处理方法数组中不存在与目标属性字段对应的目标设置方法和目标读取方法,则执行异常处理操作,输出异常错误信息。
可选地,该客户端32还包括:
数组长度检测模块,用于在通过反射扫描方式,根据属性字段数组和处理方法数组,将每个键值对信息中的值信息存储至目标存储对象中之前,获取属性字段数组的数组长度,并检测键值对信息的数量是否等于数组长度;
相应地,键值对信息存储单元,具体用于:若键值对信息的数量等于数组长度,则通过反射扫描方式,根据属性字段数组和处理方法数组,将每个键值对信息中的值信息存储至目标存储对象中。
可选地,服务器31具体用于:根据客户端发送的弹幕请求信息,确定与弹幕请求信息对应的目标参数信息;根据目标参数信息中的目标类型信息,以及类型信息与类名和包名之间的对应关系,确定目标类名和目标包名;根据目标参数信息、目标类名和目标包名确定目标弹幕消息,并将目标弹幕消息发送至客户端。
本发明实施例所提供的弹幕消息的存储系统可执行本发明任意实施例所提供的弹幕消息的存储方法,具备执行弹幕消息的存储方法相应的功能模块和有益效果。
实施例四
本实施例四提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的弹幕消息的存储方法,该方法包括:
客户端接收服务器发送的目标弹幕消息,并确定目标弹幕消息中的目标类名和目标包名;
客户端将目标类名和目标包名作为函数输入参数,调用类查询函数,确定与目标弹幕消息对应的class类型的目标存储对象;
客户端通过反射扫描方式,将目标弹幕消息中的目标参数信息存储至目标存储对象中。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种弹幕消息的存储方法,其特征在于,包括:
客户端接收服务器发送的目标弹幕消息,并确定所述目标弹幕消息中的目标类名和目标包名;
所述客户端将所述目标类名和所述目标包名作为函数输入参数,所述服务器调用类查询函数,确定与所述目标弹幕消息对应的class类型的目标存储对象;
所述客户端通过反射扫描方式,将所述目标弹幕消息中的目标参数信息存储至所述目标存储对象中;
其中所述反射扫描方式为,基于反射机制来动态加载class类型的目标存储对象后,获得所述目标存储对象的相关信息,并对所述目标存储对象中的所述相关信息进行扫描和校验;
所述目标类名和目标包名分别为所述目标存储对象对应的类名和包名。
2.根据权利要求1所述的方法,其特征在于,通过反射扫描方式,将所述目标弹幕消息中的目标参数信息存储至所述目标存储对象中,包括:
对所述目标弹幕消息中的目标参数信息进行解析,确定各键值对信息;
调用所述目标存储对象中的属性字段获取函数,确定由所述目标存储对象中的各属性字段组成的属性字段数组;
调用所述目标存储对象中的处理方法获取函数,确定由所述目标存储对象中的各设置方法和各读取方法组成的处理方法数组;
通过反射扫描方式,根据所述属性字段数组和所述处理方法数组,将每个所述键值对信息中的值信息存储至所述目标存储对象中。
3.根据权利要求2所述的方法,其特征在于,通过反射扫描方式,根据所述属性字段数组和所述处理方法数组,将每个所述键值对信息中的值信息存储至所述目标存储对象中,包括:
将各所述键值对信息逐个确定为目标键值对信息;
将所述目标键值对信息中的目标键信息与所述属性字段数组中的各属性字符进行匹配,并将匹配成功的属性字段作为目标属性字段;
检测所述处理方法数组中是否存在与所述目标属性字段对应的目标设置方法和目标读取方法;
若是,则以所述目标键值对信息中的目标值信息为输入参数,调用所述目标设置方法,将所述目标值信息作为所述目标属性字段的属性值,存储至所述目标存储对象中。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述目标键值对信息中的目标键信息与所述属性字段数组中的每个属性字符均匹配失败,或者所述处理方法数组中不存在与所述目标属性字段对应的目标设置方法和目标读取方法,则执行异常处理操作,输出异常错误信息。
5.根据权利要求2所述的方法,其特征在于,在所述通过反射扫描方式,根据所述属性字段数组和所述处理方法数组,将每个所述键值对信息中的值信息存储至所述目标存储对象中之前,还包括:
获取所述属性字段数组的数组长度,并检测所述键值对信息的数量是否等于所述数组长度;
相应地,通过反射扫描方式,根据所述属性字段数组和所述处理方法数组,将每个所述键值对信息中的值信息存储至所述目标存储对象中,包括:
若所述键值对信息的数量等于所述数组长度,则通过反射扫描方式,根据所述属性字段数组和所述处理方法数组,将每个所述键值对信息中的值信息存储至所述目标存储对象中。
6.根据权利要求1所述的方法,其特征在于,在所述客户端接收服务器发送的目标弹幕消息之前,还包括:
所述服务器根据所述客户端发送的弹幕请求信息,确定与所述弹幕请求信息对应的所述目标参数信息;
所述服务器根据所述目标参数信息中的目标类型信息,以及类型信息与类名和包名之间的对应关系,确定所述目标类名和所述目标包名;
所述服务器根据所述目标参数信息、所述目标类名和所述目标包名确定所述目标弹幕消息,并将所述目标弹幕消息发送至所述客户端。
7.一种弹幕消息的存储系统,其特征在于,所述系统包括服务器和至少一个客户端;其中,所述客户端包括:
目标类名包名确定模块,用于接收服务器发送的目标弹幕消息,并确定所述目标弹幕消息中的目标类名和目标包名;
目标存储对象确定模块,用于将所述目标类名和所述目标包名作为函数输入参数,所述服务器调用类查询函数,确定与所述目标弹幕消息对应的类class的目标存储对象;
目标参数信息存储模块,用于通过反射扫描方式,将所述目标弹幕消息中的目标参数信息存储至所述目标存储对象中;
其中所述反射扫描方式为,基于反射机制来动态加载class类型的目标存储对象后,获得所述目标存储对象的相关信息,并对所述目标存储对象中的所述相关信息进行扫描和校验;
所述目标类名和目标包名分别为所述目标存储对象对应的类名和包名。
8.根据权利要求7所述的系统,其特征在于,所述目标参数信息存储模块,包括:
键值对信息确定单元,用于对所述目标弹幕消息中的目标参数信息进行解析,确定各键值对信息;
属性字段数组确定单元,用于调用所述目标存储对象中的属性字段获取函数,确定由所述目标存储对象中的各属性字段组成的属性字段数组;
处理方法数组确定单元,用于调用所述目标存储对象中的处理方法获取函数,确定由所述目标存储对象中的各设置方法和各读取方法组成的处理方法数组;
键值对信息存储单元,用于通过反射扫描方式,根据所述属性字段数组和所述处理方法数组,将每个所述键值对信息中的值信息存储至所述目标存储对象中。
9.根据权利要求8所述的系统,其特征在于,所述键值对信息存储单元,具体用于:
将各所述键值对信息逐个确定为目标键值对信息;
将所述目标键值对信息中的目标键信息与所述属性字段数组中的各属性字符进行匹配,并将匹配成功的属性字段作为目标属性字段;
检测所述处理方法数组中是否存在与所述目标属性字段对应的目标设置方法和目标读取方法;
若是,则以所述目标键值对信息中的目标值信息为输入参数,调用所述目标设置方法,将所述目标值信息作为所述目标属性字段的属性值,存储至所述目标存储对象中。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的弹幕消息的存储方法。
CN201811276099.2A 2018-10-30 2018-10-30 一种弹幕消息的存储方法、系统和存储介质 Active CN109495782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811276099.2A CN109495782B (zh) 2018-10-30 2018-10-30 一种弹幕消息的存储方法、系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811276099.2A CN109495782B (zh) 2018-10-30 2018-10-30 一种弹幕消息的存储方法、系统和存储介质

Publications (2)

Publication Number Publication Date
CN109495782A CN109495782A (zh) 2019-03-19
CN109495782B true CN109495782B (zh) 2021-04-09

Family

ID=65693330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811276099.2A Active CN109495782B (zh) 2018-10-30 2018-10-30 一种弹幕消息的存储方法、系统和存储介质

Country Status (1)

Country Link
CN (1) CN109495782B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111796825B (zh) * 2020-06-30 2024-02-09 北京字节跳动网络技术有限公司 一种弹幕的绘制方法、装置、设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106028163A (zh) * 2016-05-19 2016-10-12 乐视控股(北京)有限公司 客户端的弹幕显示方法及装置
CN106792208A (zh) * 2016-11-24 2017-05-31 武汉斗鱼网络科技有限公司 视频偏好信息处理方法、装置及系统
CN106973309A (zh) * 2017-03-27 2017-07-21 福建中金在线信息科技有限公司 一种弹幕生成方法及装置
CN107181982A (zh) * 2017-04-19 2017-09-19 河海大学 一种基于地理位置信息的弹幕处理方法
CN107734353A (zh) * 2017-10-09 2018-02-23 武汉斗鱼网络科技有限公司 录制弹幕视频的方法、装置、可读存储介质及设备
CN107770563A (zh) * 2017-10-10 2018-03-06 武汉斗鱼网络科技有限公司 一种弹幕消息处理方法及装置
CN108537176A (zh) * 2018-04-11 2018-09-14 武汉斗鱼网络科技有限公司 目标弹幕的识别方法、装置、终端及存储介质
CN108600852A (zh) * 2018-04-28 2018-09-28 北京酷我科技有限公司 一种弹幕效果的实现方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8457005B2 (en) * 2006-11-08 2013-06-04 Trellisware Technologies, Inc. Method and system for establishing cooperative routing in wireless networks
CN107666624B (zh) * 2016-07-29 2020-01-17 中国电信股份有限公司 用于实现iptv弹幕的方法和系统
CN107450922B (zh) * 2017-07-27 2020-01-03 武汉斗鱼网络科技有限公司 安卓中弹幕事件自动注册的方法、存储介质、设备及系统
CN108540826B (zh) * 2018-04-17 2021-01-26 京东方科技集团股份有限公司 弹幕推送方法、装置、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106028163A (zh) * 2016-05-19 2016-10-12 乐视控股(北京)有限公司 客户端的弹幕显示方法及装置
CN106792208A (zh) * 2016-11-24 2017-05-31 武汉斗鱼网络科技有限公司 视频偏好信息处理方法、装置及系统
CN106973309A (zh) * 2017-03-27 2017-07-21 福建中金在线信息科技有限公司 一种弹幕生成方法及装置
CN107181982A (zh) * 2017-04-19 2017-09-19 河海大学 一种基于地理位置信息的弹幕处理方法
CN107734353A (zh) * 2017-10-09 2018-02-23 武汉斗鱼网络科技有限公司 录制弹幕视频的方法、装置、可读存储介质及设备
CN107770563A (zh) * 2017-10-10 2018-03-06 武汉斗鱼网络科技有限公司 一种弹幕消息处理方法及装置
CN108537176A (zh) * 2018-04-11 2018-09-14 武汉斗鱼网络科技有限公司 目标弹幕的识别方法、装置、终端及存储介质
CN108600852A (zh) * 2018-04-28 2018-09-28 北京酷我科技有限公司 一种弹幕效果的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《多屏内容展示与互动平台的涉及设计与实现》;周喆尘;《中国优秀硕士学位论文全文数据库》;20161215;全文 *

Also Published As

Publication number Publication date
CN109495782A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN111026982A (zh) 智能合约处理方法、计算机设备及存储介质
US11934287B2 (en) Method, electronic device and computer program product for processing data
US11294740B2 (en) Event to serverless function workflow instance mapping mechanism
CN110781180A (zh) 一种数据筛选方法和数据筛选装置
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN109828920A (zh) 一种日志分析方法、装置及计算机可读存储介质
CN109495782B (zh) 一种弹幕消息的存储方法、系统和存储介质
CN114625510A (zh) 一种任务处理系统、方法、装置及存储介质
CN112235124B (zh) 一种皮基站配置方法、装置、存储介质和电子装置
CN109788251A (zh) 视频处理方法、装置及存储介质
CN115221033A (zh) 接口协议测试方法、装置、计算机可读介质及电子设备
CN113127775A (zh) 一种页面加载方法、装置、设备和存储介质
US20240243978A1 (en) Operation and maintenance method and apparatus, system, server, electronic device, and medium
CN113128848B (zh) 全业务指标的数据质量监控方法、电子设备及存储介质
CN111782549B (zh) 测试方法、装置和电子设备
CN114817024A (zh) 用例生成方法及装置、设备、存储介质
CN113114612B (zh) 分布式系统调用链的确定方法和装置
CN113094268A (zh) 测试方法、装置、设备、介质和程序产品
CN113448652A (zh) 一种请求处理方法和装置
CN112363940A (zh) 一种数据处理方法、装置、存储介质及服务器
CN109413452B (zh) 基于不同方式的弹幕校验方法、装置、终端及存储介质
CN118260173A (zh) 一种耗时信息确定方法、装置、电子设备及存储介质
CN109413505B (zh) 一种弹幕数据的校验方法、装置、终端及存储介质
CN114090112B (zh) 配置文件的加载方法和装置、存储介质及电子装置
CN112261051B (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