CN116996704B - 一种基于单例容器的多个直播间数据管理方法及相关装置 - Google Patents
一种基于单例容器的多个直播间数据管理方法及相关装置 Download PDFInfo
- Publication number
- CN116996704B CN116996704B CN202311247198.9A CN202311247198A CN116996704B CN 116996704 B CN116996704 B CN 116996704B CN 202311247198 A CN202311247198 A CN 202311247198A CN 116996704 B CN116996704 B CN 116996704B
- Authority
- CN
- China
- Prior art keywords
- data
- live
- data manager
- broadcasting room
- room
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013523 data management Methods 0.000 title claims abstract description 20
- 230000008569 process Effects 0.000 claims description 43
- 230000015654 memory Effects 0.000 claims description 40
- 230000003068 static effect Effects 0.000 claims description 40
- 238000013500 data storage Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种基于单例容器的多个直播间数据管理方法及相关装置,其中,所述方法包括:识别到用户在多个直播间中选择进入其中一个直播间时,利用所选择进入的直播间的直播间频道ID基于全局访问点进行访问处理,获得访问到的单例容器;生成数据管理器加载请求,并将数据管理器加载请求发送至单例容器;单例容器在接收到所述数据管理器加载请求后,响应数据管理器加载请求,并将与直播间频道ID关联的数据管理器加载至直播间;利用加载的数据管理器中的数据对直播间进行初始化处理,并将数据作为直播间的UI展示的文本数据源。在本发明实施例中,使得多直播间切换的移动应用中,数据管理时更加便捷和安全。
Description
技术领域
本发明涉及数据管理技术领域,尤其涉及一种基于单例容器的多个直播间数据管理方法及相关装置。
背景技术
随着移动网络普及,5G的推出,在移动终端上观看直播成为一种趋势,直播app中,涉及功能众多,有即时聊天功能、有拉取视频流功能、有与主播的互动功能、还有购物功能。每个直播间在远端服务器上,都会被指派一个用于区分该直播间的频道ID,这众多的功能之间相互联系、相互影响,它们之间的数据通信都要围绕着这个频道ID进行。通常,移动应用中,开发者会使用数据管理器作为通信枢纽,一方面用于管理直播间中的数据,另一方面作为各个功能通信的中心。
最简单的数据管理器是在进入每个直播间之前,在内存中为该直播间,初始化指定频道ID的数据管理器对象,由直播间中的各个功能持有(注意,持有的是对同一份数据的引用),并在退出直播间时,由持有该数据管理器对象的各个直播间模块释放(释放对该份数据的引用),这样就存在一个问题,该数据管理器对象需要被多方传递,容易导致内存泄漏(当一个对象被引用数不为零,该对象则无法从内存中释放,这就称为内存泄漏)。
使用单例的方式来管理数据管理器对象,有效避免了内存泄漏的问题,但是又由于单例的特性,一个应用中只能存在唯一一个单例的数据管理器,当应用允许同时存在多个直播间时,单例的数据管理器由于只存在单个实例对象,无法满足多个直播间同时存在的需求,因为按照通常的方案,不同直播间需要不同的数据管理器。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种基于单例容器的多个直播间数据管理方法及相关装置,使得多直播间切换的移动应用中,数据管理时更加便捷和安全。
为了解决上述技术问题,一种基于单例容器的多个直播间数据管理方法,所述方法包括:
识别到用户在多个直播间中选择进入其中一个直播间时,利用所选择进入的直播间的直播间频道ID基于全局访问点进行访问处理,获得访问到的单例容器,所述单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在;
所选择进入的所述直播间利用直播间频道ID生成数据管理器加载请求,并将所述数据管理器加载请求发送至所述单例容器,所述数据管理器加载请求中包含有直播间频道ID;
所述单例容器在接收到所述数据管理器加载请求后,响应所述数据管理器加载请求,并将与所述直播间频道ID关联的数据管理器加载至所述直播间;
利用加载的所述数据管理器中的数据对所述直播间进行初始化处理,并将所述数据作为所述直播间的UI展示的文本数据源。
可选的,所述利用加载的所述数据管理器中的数据对所述直播间进行初始化处理时,还包括:
在所述直播间进行初始化的过程中,所述直播间根据直播页面更新需要对所述数据管理器进行访问时,所述直播间通过所述全局访问点访问到所述单例容器;
所述直播间基于所述单例容器的对外接口利用直播间频道ID在所述单例容器内获取数据更新后的所述数据管理器;
利用所述数据管理器中的更新数据对所述直播间进行初始化处理。
可选的,所述方法还包括:
在所述单例容器启动时,对所述单例容器进行初始化处理,并使得初始化后的单例容器持有所述数据管理器的数量为零。
可选的,所述全局访问点为全应用进程能够访问的点,且所述单例容器以全局静态变量的方式存在,且全局静态变量具有全局作用域,并放在程序的静态数据存储区域;所述静态数据存储区域在所述程序启动时进行初始化,并在程序结束时释放,在程序运行过程中,所述全局静态变量的存储位置不变。
可选的,所述单例容器作为存储所述数据管理器的容器,所述单例容器内存储的所述数据管理器的数量为零个到多个不等,并所述单例容器内的每一个所述数据管理器服务一个直播间,且每一个所述数据管理器与所服务的直播间的直播间频道ID关联。
可选的,所述将与所述直播间频道ID关联的数据管理器加载至所述直播间,包括:
判断所述单例容器内与所述直播间频道ID关联的数据管理器是否存在;
若所述单例容器内与所述直播间频道ID关联的数据管理器存在时,则直接将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中;
若所述单例容器内与所述直播间频道ID关联的数据管理器不存在时,则所述单例容器基于所述直播间频道ID初始化对应的数据管理器,并在所述单例容器内持有与所述直播间频道ID关联的所述数据管理器,并将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中。
可选的,所述单例容器基于所述直播间频道ID初始化对应的数据管理器,包括:
所述单例容器基于所述直播间频道ID为所述直播间频道ID关联的所述数据管理器在所述单例容器内分配一个存储区域;
同时将与所述直播间频道ID关联的所述数据管理器的存储区域的指针返回给索取该数据管理器的所述单例容器;所述单例容器持有其内部所有的所述数据管理器的存储区域对应的指针。
另外,本发明实施例还提供了一种基于单例容器的多个直播间数据管理装置,所述装置包括:
访问模块:用于识别到用户在多个直播间中选择进入其中一个直播间时,利用所选择进入的直播间的直播间频道ID基于全局访问点进行访问处理,获得访问到的单例容器,所述单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在;
请求生成模块:用于所选择进入的所述直播间利用直播间频道ID生成数据管理器加载请求,并将所述数据管理器加载请求发送至所述单例容器,所述数据管理器加载请求中包含有直播间频道ID;
加载模块:用于所述单例容器在接收到所述数据管理器加载请求后,响应所述数据管理器加载请求,并将与所述直播间频道ID关联的数据管理器加载至所述直播间;
初始化模块:用于利用加载的所述数据管理器中的数据对所述直播间进行初始化处理,并将所述数据作为所述直播间的UI展示的文本数据源。
另外,本发明实施例还提供了一种终端设备,包括处理器和存储器,所述处理器运行存储于所述存储器中的计算机程序或代码,实现如上述中任一项所述的多个直播间数据管理方法。
另外,本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序或代码,当所述计算机程序或代码被处理器执行时,实现如上述中任一项所述的多个直播间数据管理方法。
在本发明实施例中,使用单例容器的方式对多个直播间所对应的多个数据管理器进行管理,可以实现根据所选择的直播间对应的指标频道ID来切换至对应的数据管理器,不需要在各个模块及各个页面间进行数据传递,同时也有效的避免了内存泄露的风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的基于单例容器的多个直播间数据管理方法的流程示意图;
图2是本发明实施例中的基于单例容器的多个直播间数据管理装置的结构组成示意图;
图3是本发明实施例中的终端设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一,请参阅图1,图1是本发明实施例中的基于单例容器的多个直播间数据管理方法的流程示意图。
如图1所示,种基于单例容器的多个直播间数据管理方法,所述方法包括:
S11:识别到用户在多个直播间中选择进入其中一个直播间时,利用所选择进入的直播间的直播间频道ID基于全局访问点进行访问处理,获得访问到的单例容器,所述单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在;
在本发明具体实施过程中,用户在多个直播间中选择进入其中一个直播间时,这里包括用户之前未进入有相应的直播间时,或者在其中一个直播间中再在多个直播间中选择进去另一个直播间时,然后利用选择进入的直播间的直播间频道ID来根据全局访问点进行访问处理,获得访问到的单例容器,该单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在。
其中,不同直播间的数据(譬如主播名称、开播时间、在线人数等)是不同的,此时就需要一个ID来区分不同的直播间,因此直播间频道ID之于直播间的意义就好比身份证号之于每一个自然人;直播间频道ID通常存储在服务器中,应用在运行过程中,由用户触发从服务器拉取。
数据管理器为数据存储中心,作用是将移动应用运行过程中内存中的数据进行集中管理;这些数据包含用户输入的信息、从服务器拉取的数据,软件本地生成的数据;当应用中不同功能模块需要这些数据时,就从数据管理器中获取,此时即称之为数据通信。单例容器是以数据管理器为基本元素所创建的,提供一个全局访问点,单例容器,即某个容器对象以单例的形式存在,具体意思就是该容器类在这个应用程序的运行进程中,只会存在唯一一个实例;由于只有一个实例,该对象需要做到全局(全应用进程)可访问;为了做到全局可访问,单例对象会以全局静态变量的方式存在,全局静态变量具有全局作用域,放在程序的静态数据存储区,该存储区在程序启动时初始化,在程序结束时释放,在应用程序运行过程中,该全局变量存储位置不变。
S12:所选择进入的所述直播间利用直播间频道ID生成数据管理器加载请求,并将所述数据管理器加载请求发送至所述单例容器,所述数据管理器加载请求中包含有直播间频道ID;
在本发明具体实施过程中,直播间通过单例容器的对外接口建立通信连接,并且直播间利用其对应的直播间频道ID生成的数据管理器加载请求,并且通过对外接口连接将数据管理器加载请求发送至单例容器中,其中数据管理器加载请求中包含有直播间频道ID;该单例容器不单独服务某一个直播间,其可以同时服务多个直播间,并且作为存储数据管理器的容器存在,单例容器对象内部允许持有零至多个数据管理器对象;每一个数据管理器服务于一个直播间,使用该直播间特定的直播间频道ID作为相互区分的依据。
S13:所述单例容器在接收到所述数据管理器加载请求后,响应所述数据管理器加载请求,并将与所述直播间频道ID关联的数据管理器加载至所述直播间;
在本发明具体实施过程中,所述将与所述直播间频道ID关联的数据管理器加载至所述直播间,包括:判断所述单例容器内与所述直播间频道ID关联的数据管理器是否存在;若所述单例容器内与所述直播间频道ID关联的数据管理器存在时,则直接将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中;若所述单例容器内与所述直播间频道ID关联的数据管理器不存在时,则所述单例容器基于所述直播间频道ID初始化对应的数据管理器,并在所述单例容器内持有与所述直播间频道ID关联的所述数据管理器,并将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中。
进一步的,所述单例容器基于所述直播间频道ID初始化对应的数据管理器,包括:所述单例容器基于所述直播间频道ID为所述直播间频道ID关联的所述数据管理器在所述单例容器内分配一个存储区域;同时将与所述直播间频道ID关联的所述数据管理器的存储区域的指针返回给索取该数据管理器的所述单例容器;所述单例容器持有其内部所有的所述数据管理器的存储区域对应的指针。
具体的,由于单例容器在启动的时候,需要进行初始化处理,即在初始化之后,单例容器内所持有的数据管理器的数量为零;在在用户在直播间中利用直播间频道ID访问单例容器请求加载对应的数据管理器时,首先该单例容器需要判断其内与直播间频道ID关联的数据管理器是否存在(若是第一次访问,这个数据管理器是不存在的,因为单例容器初始化时,还未收到任何数据管理器加载请求,因此也就未曾响应任何数据管理器加载请求从而创建出任何频道ID对应的数据管理器);若单例容器内与直播间频道ID关联的数据管理器存在时,则直接将与直播间频道ID关联的数据管理器加载至直播间中;若单例容器内与直播间频道ID关联的数据管理器不存在时,则单例容器即需要根据直播间频道ID初始化对应的数据管理器,并在单例容器内持有与直播间频道ID关联的所述数据管理器,并将与直播间频道ID关联的数据管理器加载至直播间中。
该单例容器根据该直播间频道ID为该直播间频道ID关联的数据管理器在单例容器内分配一个存储区域;同时将与直播间频道ID关联的数据管理器的存储区域的指针返回给索取该数据管理器的所述单例容器;单例容器持有其内部所有的数据管理器的存储区域对应的指针。
S14:利用加载的所述数据管理器中的数据对所述直播间进行初始化处理,并将所述数据作为所述直播间的UI展示的文本数据源。
在本发明具体实施过程中,所述利用加载的所述数据管理器中的数据对所述直播间进行初始化处理时,还包括:在所述直播间进行初始化的过程中,所述直播间根据直播页面更新需要对所述数据管理器进行访问时,所述直播间通过所述全局访问点访问到所述单例容器;所述直播间基于所述单例容器的对外接口利用直播间频道ID在所述单例容器内获取数据更新后的所述数据管理器;利用所述数据管理器中的更新数据对所述直播间进行初始化处理。
具体的,在直播间进行初始化的过程中,直播间根据直播页面更新需要对数据管理器进行访问时,直播间通过全局访问点到单例容器,然后直播间单例容器的对外接口利用直播间频道ID在单例容器内获取数据更新后的数据管理器;并且利用数据管理器中的更新数据对直播间进行初始化处理;这时候,单例容器中已持有该直播间频道ID对应的数据管理器,无需在单例容器中初始化一个新的数据管理器,直接返回其持有的数据管理器即可。
在本发明具体实施过程中,在所述单例容器启动时,对所述单例容器进行初始化处理,并使得初始化后的单例容器持有所述数据管理器的数量为零。
进一步的,所述全局访问点为全应用进程能够访问的点,且所述单例容器以全局静态变量的方式存在,且全局静态变量具有全局作用域,并放在程序的静态数据存储区域;所述静态数据存储区域在所述程序启动时进行初始化,并在程序结束时释放,在程序运行过程中,所述全局静态变量的存储位置不变。
进一步的,所述单例容器作为存储所述数据管理器的容器,所述单例容器内存储的所述数据管理器的数量为零个到多个不等,并所述单例容器内的每一个所述数据管理器服务一个直播间,且每一个所述数据管理器与所服务的直播间的直播间频道ID关联。
具体的,在单例容器启动的时候,需要对单例容器内进行初始化处理,在初始化之后,使得初始化后的单例容器持有数据管理器的数量为零。
全局访问点为全应用进程能够访问的点,且单例容器以全局静态变量的方式存在,且全局静态变量具有全局作用域,并放在程序的静态数据存储区域;静态数据存储区域在程序启动时进行初始化,并在程序结束时释放,在程序运行过程中,所述全局静态变量的存储位置不变。
单例容器将作为存储数据管理器的容器,该单例容器内存储的数据管理器的数量为零个到多个不等,在启动初始化后,其存储持有的数据管理器的数量为零,在通过直播间频道ID访问之后,其开始持有每一个访问过的直播间频道ID对应的数据管理器,并且一直保持至该直播间频道ID对应的直播间消亡为止,在该直播间消亡时,单例容器也同步释放其对应的数据管理器;单例容器内的每一个数据管理器服务一个直播间,且每一个数据管理器与所服务的直播间的直播间频道ID关联。
在本发明实施例中,使用单例容器的方式对多个直播间所对应的多个数据管理器进行管理,可以实现根据所选择的直播间对应的指标频道ID来切换至对应的数据管理器,不需要在各个模块及各个页面间进行数据传递,同时也有效的避免了内存泄露的风险。
实施例二,请参阅图2,图2是本发明实施例中的基于单例容器的多个直播间数据管理装置的结构组成示意图。
如图2所示,一种基于单例容器的多个直播间数据管理装置,所述装置包括:
访问模块21:用于识别到用户在多个直播间中选择进入其中一个直播间时,利用所选择进入的直播间的直播间频道ID基于全局访问点进行访问处理,获得访问到的单例容器,所述单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在;
在本发明具体实施过程中,用户在多个直播间中选择进入其中一个直播间时,这里包括用户之前未进入有相应的直播间时,或者在其中一个直播间中再在多个直播间中选择进去另一个直播间时,然后利用选择进入的直播间的直播间频道ID来根据全局访问点进行访问处理,获得访问到的单例容器,该单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在。
其中,不同直播间的数据(譬如主播名称、开播时间、在线人数等)是不同的,此时就需要一个ID来区分不同的直播间,因此直播间频道ID之于直播间的意义就好比身份证号之于每一个自然人;直播间频道ID通常存储在服务器中,应用在运行过程中,由用户触发从服务器拉取。
数据管理器为数据存储中心,作用是将移动应用运行过程中内存中的数据进行集中管理;这些数据包含用户输入的信息、从服务器拉取的数据,软件本地生成的数据;当应用中不同功能模块需要这些数据时,就从数据管理器中获取,此时即称之为数据通信。单例容器是以数据管理器为基本元素所创建的,提供一个全局访问点,单例容器,即某个容器对象以单例的形式存在,具体意思就是该容器类在这个应用程序的运行进程中,只会存在唯一一个实例;由于只有一个实例,该对象需要做到全局(全应用进程)可访问;为了做到全局可访问,单例对象会以全局静态变量的方式存在,全局静态变量具有全局作用域,放在程序的静态数据存储区,该存储区在程序启动时初始化,在程序结束时释放,在应用程序运行过程中,该全局变量存储位置不变。
请求生成模块22:用于所选择进入的所述直播间利用直播间频道ID生成数据管理器加载请求,并将所述数据管理器加载请求发送至所述单例容器,所述数据管理器加载请求中包含有直播间频道ID;
在本发明具体实施过程中,直播间通过单例容器的对外接口建立通信连接,并且直播间利用其对应的直播间频道ID生成的数据管理器加载请求,并且通过对外接口连接将数据管理器加载请求发送至单例容器中,其中数据管理器加载请求中包含有直播间频道ID;该单例容器不单独服务某一个直播间,其可以同时服务多个直播间,并且作为存储数据管理器的容器存在,单例容器对象内部允许持有零至多个数据管理器对象;每一个数据管理器服务于一个直播间,使用该直播间特定的直播间频道ID作为相互区分的依据。
加载模块23:所述单例容器在接收到所述数据管理器加载请求后,响应所述数据管理器加载请求,并将与所述直播间频道ID关联的数据管理器加载至所述直播间;
在本发明具体实施过程中,所述将与所述直播间频道ID关联的数据管理器加载至所述直播间,包括:判断所述单例容器内与所述直播间频道ID关联的数据管理器是否存在;若所述单例容器内与所述直播间频道ID关联的数据管理器存在时,则直接将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中;若所述单例容器内与所述直播间频道ID关联的数据管理器不存在时,则所述单例容器基于所述直播间频道ID初始化对应的数据管理器,并在所述单例容器内持有与所述直播间频道ID关联的所述数据管理器,并将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中。
进一步的,所述单例容器基于所述直播间频道ID初始化对应的数据管理器,包括:所述单例容器基于所述直播间频道ID为所述直播间频道ID关联的所述数据管理器在所述单例容器内分配一个存储区域;同时将与所述直播间频道ID关联的所述数据管理器的存储区域的指针返回给索取该数据管理器的所述单例容器;所述单例容器持有其内部所有的所述数据管理器的存储区域对应的指针。
具体的,由于单例容器在启动的时候,需要进行初始化处理,即在初始化之后,单例容器内所持有的数据管理器的数量为零;在在用户在直播间中利用直播间频道ID访问单例容器请求加载对应的数据管理器时,首先该单例容器需要判断其内与直播间频道ID关联的数据管理器是否存在(若是第一次访问,这个数据管理器是不存在的,因为单例容器初始化时,还未收到任何数据管理器加载请求,因此也就未曾响应任何数据管理器加载请求从而创建出任何频道ID对应的数据管理器);若单例容器内与直播间频道ID关联的数据管理器存在时,则直接将与直播间频道ID关联的数据管理器加载至直播间中;若单例容器内与直播间频道ID关联的数据管理器不存在时,则单例容器即需要根据直播间频道ID初始化对应的数据管理器,并在单例容器内持有与直播间频道ID关联的所述数据管理器,并将与直播间频道ID关联的数据管理器加载至直播间中。
该单例容器根据该直播间频道ID为该直播间频道ID关联的数据管理器在单例容器内分配一个存储区域;同时将与直播间频道ID关联的数据管理器的存储区域的指针返回给索取该数据管理器的所述单例容器;单例容器持有其内部所有的数据管理器的存储区域对应的指针。
初始化模块24:用于利用加载的所述数据管理器中的数据对所述直播间进行初始化处理,并将所述数据作为所述直播间的UI展示的文本数据源。
在本发明具体实施过程中,所述利用加载的所述数据管理器中的数据对所述直播间进行初始化处理时,还包括:在所述直播间进行初始化的过程中,所述直播间根据直播页面更新需要对所述数据管理器进行访问时,所述直播间通过所述全局访问点访问到所述单例容器;所述直播间基于所述单例容器的对外接口利用直播间频道ID在所述单例容器内获取数据更新后的所述数据管理器;利用所述数据管理器中的更新数据对所述直播间进行初始化处理。
具体的,在直播间进行初始化的过程中,直播间根据直播页面更新需要对数据管理器进行访问时,直播间通过全局访问点到单例容器,然后直播间单例容器的对外接口利用直播间频道ID在单例容器内获取数据更新后的数据管理器;并且利用数据管理器中的更新数据对直播间进行初始化处理;这时候,单例容器中已持有该直播间频道ID对应的数据管理器,无需在单例容器中初始化一个新的数据管理器,直接返回其持有的数据管理器即可。
在本发明具体实施过程中,在所述单例容器启动时,对所述单例容器进行初始化处理,并使得初始化后的单例容器持有所述数据管理器的数量为零。
进一步的,所述全局访问点为全应用进程能够访问的点,且所述单例容器以全局静态变量的方式存在,且全局静态变量具有全局作用域,并放在程序的静态数据存储区域;所述静态数据存储区域在所述程序启动时进行初始化,并在程序结束时释放,在程序运行过程中,所述全局静态变量的存储位置不变。
进一步的,所述单例容器作为存储所述数据管理器的容器,所述单例容器内存储的所述数据管理器的数量为零个到多个不等,并所述单例容器内的每一个所述数据管理器服务一个直播间,且每一个所述数据管理器与所服务的直播间的直播间频道ID关联。
具体的,在单例容器启动的时候,需要对单例容器内进行初始化处理,在初始化之后,使得初始化后的单例容器持有数据管理器的数量为零。
全局访问点为全应用进程能够访问的点,且单例容器以全局静态变量的方式存在,且全局静态变量具有全局作用域,并放在程序的静态数据存储区域;静态数据存储区域在程序启动时进行初始化,并在程序结束时释放,在程序运行过程中,所述全局静态变量的存储位置不变。
单例容器将作为存储数据管理器的容器,该单例容器内存储的数据管理器的数量为零个到多个不等,在启动初始化后,其存储持有的数据管理器的数量为零,在通过直播间频道ID访问之后,其开始持有每一个访问过的直播间频道ID对应的数据管理器,并且一直保持至该直播间频道ID对应的直播间消亡为止,在该直播间消亡时,单例容器也同步释放其对应的数据管理器;单例容器内的每一个数据管理器服务一个直播间,且每一个数据管理器与所服务的直播间的直播间频道ID关联。
在本发明实施例中,使用单例容器的方式对多个直播间所对应的多个数据管理器进行管理,可以实现根据所选择的直播间对应的指标频道ID来切换至对应的数据管理器,不需要在各个模块及各个页面间进行数据传递,同时也有效的避免了内存泄露的风险。
本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例中任意一个实施例的多个直播间数据管理方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSSMemory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的多个直播间数据管理方法。
此外,图3是本发明实施例中的终端设备的结构组成示意图。
本发明实施例还提供了一种终端设备,如图3所示。所述终端设备包括处理器302、存储器303、输入单元304以及显示单元305等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器303可用于存储应用程序301以及各功能模块,处理器302运行存储在存储器303的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程 ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
输入单元304用于接收信号的输入,以及接收用户输入的关键字。输入单元304可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元305可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元305可采用液晶显示器、有机发光二极管等形式。处理器302是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器303内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
作为一个实施例,所述终端设备包括:一个或多个处理器302,存储器303,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器303中并被配置为由所述一个或多个处理器302执行,所述一个或多个应用程序301配置用于执行上述实施例中的任意一实施例中对的多个直播间数据管理方法。
在本发明实施例中,使用单例容器的方式对多个直播间所对应的多个数据管理器进行管理,可以实现根据所选择的直播间对应的指标频道ID来切换至对应的数据管理器,不需要在各个模块及各个页面间进行数据传递,同时也有效的避免了内存泄露的风险。
另外,以上对本发明实施例所提供的一种基于单例容器的多个直播间数据管理方法及相关装置进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种基于单例容器的多个直播间数据管理方法,其特征在于,所述方法包括:
识别到用户在多个直播间中选择进入其中一个直播间时,利用所选择进入的直播间的直播间频道ID基于全局访问点进行访问处理,获得访问到的单例容器,所述单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在;
所选择进入的所述直播间利用直播间频道ID生成数据管理器加载请求,并将所述数据管理器加载请求发送至所述单例容器,所述数据管理器加载请求中包含有直播间频道ID;
所述单例容器在接收到所述数据管理器加载请求后,响应所述数据管理器加载请求,并将与所述直播间频道ID关联的数据管理器加载至所述直播间;
利用加载的所述数据管理器中的数据对所述直播间进行初始化处理,并将所述数据作为所述直播间的UI展示的文本数据源;
所述利用加载的所述数据管理器中的数据对所述直播间进行初始化处理时,还包括:
在所述直播间进行初始化的过程中,所述直播间根据直播页面更新的需要对所述数据管理器进行访问时,所述直播间通过所述全局访问点访问到所述单例容器;
所述直播间基于所述单例容器的对外接口利用直播间频道ID在所述单例容器内获取数据更新后的所述数据管理器;
利用所述数据管理器中的更新数据对所述直播间进行初始化处理。
2.根据权利要求1所述的多个直播间数据管理方法,其特征在于,所述方法还包括:
在所述单例容器启动时,对所述单例容器进行初始化处理,并使得初始化后的单例容器持有所述数据管理器的数量为零。
3.根据权利要求1所述的多个直播间数据管理方法,其特征在于, 所述全局访问点为全应用进程能够访问的点,且所述单例容器以全局静态变量的方式存在,且全局静态变量具有全局作用域,并放在程序的静态数据存储区域;所述静态数据存储区域在所述程序启动时进行初始化,并在程序结束时释放,在程序运行过程中,所述全局静态变量的存储位置不变。
4.根据权利要求1所述的多个直播间数据管理方法,其特征在于,所述单例容器作为存储所述数据管理器的容器,所述单例容器内存储的所述数据管理器的数量为零个到多个不等,所述单例容器内的每一个所述数据管理器服务一个直播间,且每一个所述数据管理器与所服务的直播间的直播间频道ID关联。
5.根据权利要求1所述的多个直播间数据管理方法,其特征在于,所述将与所述直播间频道ID关联的数据管理器加载至所述直播间,包括:
判断所述单例容器内与所述直播间频道ID关联的数据管理器是否存在;
若所述单例容器内与所述直播间频道ID关联的数据管理器存在时,则直接将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中;
若所述单例容器内与所述直播间频道ID关联的数据管理器不存在时,则所述单例容器基于所述直播间频道ID初始化对应的数据管理器,并在所述单例容器内持有与所述直播间频道ID关联的所述数据管理器,并将与所述直播间频道ID关联的所述数据管理器加载至所述直播间中。
6.根据权利要求5所述的多个直播间数据管理方法,其特征在于,所述单例容器基于所述直播间频道ID初始化对应的数据管理器,包括:
所述单例容器基于所述直播间频道ID为所述直播间频道ID关联的所述数据管理器在所述单例容器内分配一个存储区域;
同时将与所述直播间频道ID关联的所述数据管理器的存储区域的指针返回给索取该数据管理器的所述单例容器;所述单例容器持有其内部所有的所述数据管理器的存储区域对应的指针。
7.一种基于单例容器的多个直播间数据管理装置,其特征在于,所述装置包括:
访问模块:用于识别到用户在多个直播间中选择进入其中一个直播间时,利用所选择进入的直播间的直播间频道ID基于全局访问点进行访问处理,获得访问到的单例容器,所述单例容器为以数据管理器为基本元素的容器,且容器对象以单例的形式存在;
请求生成模块:用于所选择进入的所述直播间利用直播间频道ID生成数据管理器加载请求,并将所述数据管理器加载请求发送至所述单例容器,所述数据管理器加载请求中包含有直播间频道ID;
加载模块:用于所述单例容器在接收到所述数据管理器加载请求后,响应所述数据管理器加载请求,并将与所述直播间频道ID关联的数据管理器加载至所述直播间;
初始化模块:用于利用加载的所述数据管理器中的数据对所述直播间进行初始化处理,并将所述数据作为所述直播间的UI展示的文本数据源;
所述利用加载的所述数据管理器中的数据对所述直播间进行初始化处理时,还包括:
在所述直播间进行初始化的过程中,所述直播间根据直播页面更新的需要对所述数据管理器进行访问时,所述直播间通过所述全局访问点访问到所述单例容器;
所述直播间基于所述单例容器的对外接口利用直播间频道ID在所述单例容器内获取数据更新后的所述数据管理器;
利用所述数据管理器中的更新数据对所述直播间进行初始化处理。
8.一种终端设备,包括处理器和存储器,其特征在于,所述处理器运行存储于所述存储器中的计算机程序或代码,实现如权利要求1至6中任一项所述的多个直播间数据管理方法。
9.一种计算机可读存储介质,用于存储计算机程序或代码,其特征在于,当所述计算机程序或代码被处理器执行时,实现如权利要求1至6中任一项所述的多个直播间数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311247198.9A CN116996704B (zh) | 2023-09-26 | 2023-09-26 | 一种基于单例容器的多个直播间数据管理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311247198.9A CN116996704B (zh) | 2023-09-26 | 2023-09-26 | 一种基于单例容器的多个直播间数据管理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116996704A CN116996704A (zh) | 2023-11-03 |
CN116996704B true CN116996704B (zh) | 2024-02-06 |
Family
ID=88532507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311247198.9A Active CN116996704B (zh) | 2023-09-26 | 2023-09-26 | 一种基于单例容器的多个直播间数据管理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116996704B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016201033A1 (en) * | 2015-06-09 | 2016-12-15 | Icontrol Networks, Inc. | Data model for home automation |
CN106791898A (zh) * | 2016-12-12 | 2017-05-31 | 广州华多网络科技有限公司 | 一种直播视频加载方法和装置 |
US10491967B1 (en) * | 2015-12-21 | 2019-11-26 | Amazon Technologies, Inc. | Integrating a live streaming video service with external computing systems |
CN110968368A (zh) * | 2018-09-30 | 2020-04-07 | 武汉斗鱼网络科技有限公司 | 一种直播数据的处理方法及其相关设备 |
CN112492332A (zh) * | 2020-11-13 | 2021-03-12 | 北京达佳互联信息技术有限公司 | 数据的显示控制方法、装置、电子设备及存储介质 |
CN115567733A (zh) * | 2022-11-15 | 2023-01-03 | 易方信息科技股份有限公司 | 基于sdk的直播间切换方法、装置、终端以及存储介质 |
-
2023
- 2023-09-26 CN CN202311247198.9A patent/CN116996704B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016201033A1 (en) * | 2015-06-09 | 2016-12-15 | Icontrol Networks, Inc. | Data model for home automation |
US10491967B1 (en) * | 2015-12-21 | 2019-11-26 | Amazon Technologies, Inc. | Integrating a live streaming video service with external computing systems |
CN106791898A (zh) * | 2016-12-12 | 2017-05-31 | 广州华多网络科技有限公司 | 一种直播视频加载方法和装置 |
CN110968368A (zh) * | 2018-09-30 | 2020-04-07 | 武汉斗鱼网络科技有限公司 | 一种直播数据的处理方法及其相关设备 |
CN112492332A (zh) * | 2020-11-13 | 2021-03-12 | 北京达佳互联信息技术有限公司 | 数据的显示控制方法、装置、电子设备及存储介质 |
CN115567733A (zh) * | 2022-11-15 | 2023-01-03 | 易方信息科技股份有限公司 | 基于sdk的直播间切换方法、装置、终端以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116996704A (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467025B2 (en) | Managing delivery of code and dependent data using application containers | |
US11314568B2 (en) | Message processing method and apparatus, storage medium, and computer device | |
CN110309475B (zh) | 一种页面展现方法、装置、终端设备及存储介质 | |
CN109445841B (zh) | 接口文档管理方法、装置、服务器及存储介质 | |
CN111330280A (zh) | 游戏中的数据处理方法、装置、存储介质与电子设备 | |
CN116996704B (zh) | 一种基于单例容器的多个直播间数据管理方法及相关装置 | |
CN114721743B (zh) | 任务执行方法、装置和电子设备 | |
CN109413498B (zh) | 一种弹幕消息的分发方法、装置、终端和存储介质 | |
CN116560859B (zh) | 一种基于云计算的访问设备资源分配方法及相关装置 | |
CN118312273A (zh) | 一种依赖库共享方法、装置和可读存储介质 | |
CN117032589A (zh) | 一种基于数据中心的终端应用数据管理方法及相关装置 | |
CN116017074A (zh) | 直播数据的推荐方法、装置以及计算机可读存储介质 | |
CN111176813A (zh) | 一种运行模式动态切换方法及装置 | |
CN118312311A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN115048180A (zh) | 虚拟机检查点的操作方法、装置、存储介质及计算机设备 | |
CN117692359A (zh) | 一种端口监听方法、装置、设备及介质 | |
CN114663128A (zh) | 一种展示方法、计算机设备和存储介质 | |
CN116719472A (zh) | 虚拟键盘的操作方法、装置、电子设备及可读存储介质 | |
CN118212335A (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 |