一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种指定时段观看直播用户统计方法及装置与流程

2023-01-15 08:58:18 来源:中国专利 TAG:


1.本发明属于互联网技术领域,具体涉及一种指定时段观看直播用户统计方法及装置。


背景技术:

2.目前,直播已经成为比较常见的互联网产品,并且越来越多的用户也参与到直播之中。在观看直播的过程中,客户端会统计用户观看直播的时长并反馈到直播提供商的服务器,直播提供商可以依据该时长以及实时观看人数设计方案,以提升用户参与直播的体验。
3.现有的用户观看直播计时方案中,终端设备观看计时达到指定时间后再进行数据上报;同时终端与服务端进行心跳定时上报观看状态,服务器采用直播观看标识计时记录直播开始会话事件并定时计算会话事件。主要存在的缺陷有:(1) 终端全权处理计时统计逻辑,存在调包修改数据的风险;(2) 直播频道实时观看人数数据上报至终端,进行清洗统计后再反馈至后台,使得后台无法实时观看直播频道实时观看人数;(3) 服务器容错率低,易由于网络问题直播断开而造成计时失败;(4) 采用字典或数据库定时存储每分钟直播观看用户,数据冗杂;当直播观看用户过多时,存储效率慢,计算复杂。


技术实现要素:

4.基于此,有必要针对现有的问题,本发明提供了一种指定时段观看直播用户统计方法及装置,采用roaringbitmap数据存储,能够减少内存使用,提高存储效率;同时能够实现计算和程序逻辑上的优化,提高计算效率;后台能够通过位图报表实时获取观看直播的用户数量;服务器通过用户终端的连接时间和断开连接的时间,计算用户终端连续在线时长,不需要用户终端提供时长,可以防止第三方程序恶意修改用户终端的时间,进而提高用户终端连续在线时长的计算准确性。
5.第一方面,本技术实施例提供了一种指定时段观看直播用户统计方法,包括:s1:开启直播后,基于当前时间戳和直播房间id生成用户存储数据字典;s2:建立与用户终端的连接,根据用户终端上报的用户信息,生成用户自增表;s3:根据用户自增表和用户定期上报的心跳状态信息定时生成roaringbitmap数据,并插入用户存储数据字典中;s4:依据用户存储数据字典获取直播房间指定时段观看的用户数量或计算用户终端连续在线时长。
6.采用roaringbitmap数据存储,能够减少内存使用,提高存储效率;同时能够实现计算和程序逻辑上的优化,提高计算效率;后台能够通过位图报表实时获取观看直播的用户数量;服务器通过用户终端的连接时间和断开连接的时间,计算用户终端连续在线时长,
不需要用户终端提供时长,可以防止第三方程序恶意修改用户终端的时间,进而提高用户终端连续在线时长的计算准确性。
7.进一步的,s1中,用户存储数据字典包括key值数据和value值数据,key值数据由当前时间戳和直播房间id组成,即key值记作:channelid-timestamp。
8.进一步的,s2中,建立与用户终端连接的过程具体包括:s21:随机选择加密脚本下发至用户终端;s22:接收用户终端上报的解密信息,并判别校验解密信息;s221:当服务器判别解密信息校验通过后,回复用户终端连接成功状态,并与用户终端构建websocket连接;s222:当服务器判别解密信息校验未通过后,断开与用户终端连接。
9.进一步的,s2中,生成用户自增表的过程具体包括:s231:获取用户id,并依据用户id生成对应的自编号;其中,自编号从0开始;s232:自编号与用户id构建kv键值对,即自编号为key,记作:num;用户id为value,记作:userid。
10.进一步的,s3中,服务器定时生成roaringbitmap数据前,需要判别用户id是否为首次进入直播房间,其过程具体包括:s311:当判别用户id为首次进入直播房间时,在用户存储数据字典中插入用户id与首次进入直播房间的时间;s312:当判别用户id为非首次进入直播房间时,直接依据用户id插入进入直播房间的时间至用户存储数据字典中。
11.进一步的,s3中,定时生成roaringbitmap数据,并插入用户存储数据字典中的过程具体包括:s321:依据直播房间id获取用户自增表中的kv键值对,定时生成roaringbitmap数据,构建value值数据,即value值记作:roaringbitmap;s322:依据还在上报心跳状态信息的用户id的自编号,将其对应的value值数据插入用户存储数据字典中。
12.进一步的,s4中,获取直播房间指定时段观看的用户数量的过程具体包括:获取指定时段内的生成的roaringbitmap数据,roaringbitmap数据包括0和1,0表示时段内用户终端不在线,1表示时段内用户终端在线;获取其中为1的数量,即为实时观看的用户数量;计算用户终端连续在线时长的过程具体包括:s41:获取用户开始进入直播房间的时间戳和直播房间id相关数据;s42:获取各指定时段内的roaringbitmap数据,进行roaringbitmap指定位进行与计算,即各连续时段内为1的用户id为连续在线用户;s43:获取最多连续时段内为1的时段,并求其交集即为该用户终端的连续在线时长。
13.第二方面,本技术实施例提供了一种指定时段观看直播用户统计方法的装置,包括:字典生成模块,用于生成用户存储数据字典中的key值数据和value值数据;
自增表生成模块,用于依据用户终端上报的用户信息生成用户自增表;数据统计模块,用于统计指定时段内观看的用户数量、以及计算用户终端的连续在线时长。
14.第三方面,本技术实施例还提供了一种计算机设备,包括:处理器;用于存储所述处理器可执行命令的存储器;其中,所述处理器被配置为执行所述存储器中的可执行命令,以实现如上所述的指定时段观看直播用户统计方法的步骤。
15.第四方面,本技术实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上所述的指定时段观看直播用户统计方法的步骤。
16.本发明的有益效果为:本发明采用roaringbitmap数据存储,能够减少内存使用,提高存储效率;同时能够实现计算和程序逻辑上的优化,提高计算效率;后台能够通过位图报表实时获取观看直播的用户数量;服务器通过用户终端的连接时间和断开连接的时间,计算用户终端连续在线时长,不需要用户终端提供时长,可以防止第三方程序恶意修改用户终端的时间,进而提高用户终端连续在线时长的计算准确性。
附图说明
17.通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式。附图用来提供对本技术实施例的进一步理解,并且构成说明书的一部分,与本技术实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
18.图1为实施例1中本发明的流程示意图;图2为实施例2中本发明的流程示意图;图3为实施例3中指定时段观看直播用户统计方法的装置的结构示意图;图4为实施例3中字典生成模块的示意图;图5为实施例3中获取指定时段内连续在线用户的示意图;图6为实施例4中所提供的一种计算机设备的结构示意图。
具体实施方式
19.下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
20.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
21.另外,术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选
地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
22.实施例1图1所示的是一种指定时段观看直播用户统计方法,采用roaringbitmap数据存储,能够减少内存使用,提高存储效率;同时能够实现计算和程序逻辑上的优化,提高计算效率;后台能够通过位图报表实时获取观看直播的用户数量;服务器通过用户终端的连接时间和断开连接的时间,计算用户终端连续在线时长,不需要用户终端提供时长,可以防止第三方程序恶意修改用户终端的时间,进而提高用户终端连续在线时长的计算准确性。具体包括如下步骤:s1:开启直播后,基于当前时间戳和直播房间id生成用户存储数据字典;s2:建立与用户终端的连接,根据用户终端上报的用户信息,生成用户自增表;s3:根据用户自增表和用户定期上报的心跳状态信息定时生成roaringbitmap数据,并插入用户存储数据字典中;s4:依据用户存储数据字典获取直播房间指定时段观看的用户数量或计算用户终端连续在线时长。
23.在本实施例中,s1中,用户存储数据字典包括key值数据和value值数据,key值数据由当前时间戳和直播房间id组成,即key值记作:channelid-timestamp。
24.在本实施例中,s2中,建立与用户终端连接的过程具体包括:s21:随机选择加密脚本下发至用户终端;s22:接收用户终端上报的解密信息,并判别校验解密信息;s221:当服务器判别解密信息校验通过后,回复用户终端连接成功状态,并与用户终端构建websocket连接;s222:当服务器判别解密信息校验未通过后,断开与用户终端连接。
25.在本实施例中,s2中,生成用户自增表的过程具体包括:s231:获取用户id,并依据用户id生成对应的自编号;其中,自编号从0开始;s232:自编号与用户id构建kv键值对,即自编号为key,记作:num;用户id为value,记作:userid。
26.在本实施例中,s3中,服务器定时生成roaringbitmap数据前,需要判别用户id是否为首次进入直播房间,其过程具体包括:s311:当判别用户id为首次进入直播房间时,在用户存储数据字典中插入用户id与首次进入直播房间的时间;s312:当判别用户id为非首次进入直播房间时,直接依据用户id插入进入直播房间的时间至用户存储数据字典中。
27.在本实施例中,s3中,定时生成roaringbitmap数据,并插入用户存储数据字典中的过程具体包括:s321:依据直播房间id获取用户自增表中的kv键值对,定时生成roaringbitmap数据,构建value值数据,即value值记作:roaringbitmap;s322:依据还在上报心跳状态信息的用户id的自编号,将其对应的value值数据插入用户存储数据字典中。
28.在本实施例中,s4中,获取直播房间指定时段观看的用户数量的过程具体包括:获取指定时段内的生成的roaringbitmap数据,roaringbitmap数据包括0和1,0表示时段内用户终端不在线,1表示时段内用户终端在线;获取其中为1的数量,即为实时观看的用户数量。
29.在本实施例中,s4中,计算用户终端连续在线时长的过程具体包括:s41:获取用户开始进入直播房间的时间戳和直播房间id相关数据;s42:获取各指定时段内的roaringbitmap数据,进行roaringbitmap指定位进行与计算,即各连续时段内为1的用户id为连续在线用户;s43:获取最多连续时段内为1的时段,并求其交集即为该用户终端的连续在线时长。
30.实施例2如图2所示,在本实施例中,提供另一种指定时段观看直播用户统计方法的流程示意图,所述方法具体包括:t1:直播房间开启,异步通知服务器定时存储开启,t2:基于当前时间戳和直播房间id构建key值数据,生成用户存储数据字典;t3:用户终端进入直播房间,并向服务器发送当前直播房间的websocket连接请求;t4:服务器接收用户终端发送的websocket连接请求,并随机选择加密脚本下发;t5:用户终端接收服务器发送的加密脚本,并进行脚本解密上报;t6:服务器接收用户终端上报的解密脚本,对其进行校验;t61:服务器校验通过,回复用户终端连接成功状态,并与用户终端构建websocket连接;t62:服务器校验未通过,断开与用户终端连接;t7:用户终端收到连接成功状态,上报用户id和直播房间id;t8:服务器接收用户终端上报的用户id和直播房间id,并依据用户id生成用户自增表;t9:服务器判别用户id是否为首次进入直播房间;t91:当判别用户id为首次进入直播房间时,在用户存储数据字典中插入用户id与首次进入直播房间的时间;t92:当判别用户id为非首次进入直播房间时,直接依据用户id定时插入进入直播房间的时间至用户存储数据字典中 ;t10:获取t8中用户自增表中的自编号,结合用户定期上报的心跳状态信息定时生成roaringbitmap数据,构建value值数据,并将value值数据插入用户存储数据字典中;t11:用户终端退出直播房间,断开与服务器的连接;t12:直播房间关闭,异步通知服务器停止定时存储;并断开与所有用户终端的连接。
31.实施例3在上述的实施例中,提供了一种指定时段观看直播用户统计方法,与之对应的,本技术还提供一种指定时段观看直播用户统计方法的装置。本技术实施例提供的装置可以实
施上述方法,该装置可以通过软件、硬件或软硬结合的方式来实现。例如,该装置可以包括集成的或分开的功能模块或单元来执行上述各方法中的对应步骤。
32.图3所示的是本实施例提供的一种指定时段观看直播用户统计方法的装置的示意图。由于装置实施例基本相似于方法实施例,所以描述比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
33.如图3所示,一种指定时段观看直播用户统计方法的装置300,其包括:字典生成模块301,用于生成用户存储数据字典中的key值数据和value值数据;自增表生成模块302,用于依据用户终端上报的用户信息生成用户自增表;数据统计模块303,用于统计指定时段内观看的用户数量、以及计算用户终端的连续在线时长。
34.具体来说,如图4所示,字典生成模块301包括:key值数据,其由直播房间开启时的当前时间戳和直播房间id组成,即key值记作:channelid-timestamp。
35.value数据,其由依据直播房间id获取用户自增表中的kv键值对,进而定时生成roaringbitmap数据构建而成,即value值记作:roaringbitmap。
36.具体来说,自增表生成模块302包括:key值数据,其为自编号,记作:num;自编号从0开始;value值数据,其为用户id,记作:userid。
37.具体来说,数据统计模块303包括:用户数量计算,其计算方法为:基于用户存储数据字典,获取指定时段内生成的roaringbitmap数据,roaringbitmap数据包括0和1,0表示时段内用户终端不在线,1表示时段内用户终端在线;获取其中为1的数量,即为该时段内实时观看的用户数量;用户终端连续在线时长计算,其计算方法为:基于用户存储数据字典,获取指定时段内用户id对应的roaringbitmap数据,进行roaringbitmap指定位进行与计算,获取各连续时段内为1的用户id即为连续在线用户;获取最多连续时段内为1的时段,并求其交集即为该用户终端的连续在线时长。
38.在本实施例中,如图5所示,直播房间id为:10002;指定时段为:2022-08-17,10:50:15~2022-08-17,10:50:17,即每秒内的时间戳分别为:1660704615000、1660704616000、1660704617000;自编码为:0~6,用户id为:userid1~userid7;其中,计算指定时段内连续观看用户即为获取时段内连续为1的数据,即可得到在指定时段内,连续观看直播的用户id为:userid1、userid2、userid3;实时观看直播的用户数量为3。
39.实施例4基于同一技术构思,如图6所示,本发明实施例还提供了一种与前述实施例提供的方法对应的计算机设备600,包括:处理器601,其被配置为执行所述存储器中的可执行命令,以实现如上所述的指定时段观看直播用户统计方法的步骤;存储器602,其用于存储处理器可执行命令;通信接口603;
总线604;处理器601、存储器602、通信接口603通过总线604连接。
40.其中,存储器至少包括一种类型的可读计算机可读存储介质,所述可读计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器在一些实施例中可以是直播视频业务系统的内部存储单元,例如硬盘。存储器在另一些实施例中也可以是直播视频业务系统的外部存储设备,例如插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)等。进一步地,存储器还可以既包括直播视频业务系统的内部存储单元也包括外部存储设备。存储器不仅可以用于存储安装于直播视频业务系统的应用软件及各类数据,例如直播视频业务系统程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
41.处理器在一些实施例中可以是一中央处理器(central processing unit, cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器中存储的程序代码或处理数据,例如执行直播视频业务程序等。
42.本发明实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得计算机设备能够执行如上所述的指定时段观看直播用户统计方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
43.本发明公开实施例所提供的指定时段观看直播用户统计方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
44.本发明公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
45.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
46.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
47.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
48.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下
列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
49.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
50.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
51.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
52.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
53.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献