具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在直播领域,为了获得更多的关注与收益,存在一些主播进行恶意刷人气。恶意刷人气主要通过破解直播平台的网络协议,以伪造大量的虚假客户端用户同时登陆到直播间,给使用者营造直播间大量观众观看的假象。但是,经发明人观察发现,大量的虚假客户端登陆到直播间,不需要通过浏览器来执行前端的JavaScript代码。同时,随着HTML5技术的发展,HTML5已广泛应用于浏览器中,HTML5也将成为下一代标准HTML协议。从而基于HTML5的新特性越来越多的应用到WEB程序中。因此,本发明基于HTML5的特性提出一种直播间人气处理方法、装置、服务器及存储介质。
本发明下述各实施例如无特别说明均可应用于如图1所示的环境中,如图1所示,服务器100与客户端200之间可以通过有线或无线网络的方式连接。以便于所述客户端200与所述服务器100,进而实现对选中的直播间进行访问。
上述客户端200可以安装于电子设备(图未标)中,与服务器100对应。用户可以使用客户端200对服务器100进行访问,且可以通过对应的浏览器进入选中的直播间观看直播。上述电子设备可以包括智能手机、平板电脑、电子书阅读器、膝上型便携计算机、电脑、笔记本电脑等。上述直播间为服务器100提供的服务。
如图2所示,上述服务器100包括直播间人气处理装置400、存储器111、处理器112、通信单元113。
所述存储器111、处理器112以及通信单元113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述直播间人气处理装置400包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在服务器100的操作系统(operatingsystem,OS)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如所述直播间人气处理装置400所包括的软件功能模块及计算机程序等。
其中,所述存储器111可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器111用于存储程序以及语音数据,所述处理器112在接收到执行指令后,执行所述程序。所述通信单元113用于与客户端200之间进行数据收发。
应当理解的是,图2所示的结构仅为服务器100的结构示意图,所述服务器100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
第一实施例
请参照图3,是本发明较佳实施例提供一种直播间人气处理方法的步骤流程图。上述直播间人气处理方法应用于图1中的服务器100。如图3所示,所述方法包括:
步骤S101,当检测到所述目标客户端访问所述待检测直播间时,与所述目标客户端交换密钥,以生成与所述目标客户端对应的共享密钥。
需要说明的是,客户端200每次访问一直播间时,均会创建与该直播间对应的一对公钥及私钥。优选地,可以采用生成的随机数据和访问直播间对应的房间号的MD5值做为私钥,并依据私钥调用预设函数生成公钥,例如,预设函数可以是RSA的生成配对钥匙接口RSA.CreatePair。作为一种实施方式,可以通过调用Randdata=rand()函数生成一段随机数据Randdata,再利用函数ClientPrivatekey=Md5.Create(Randdata+RoomId)生成与访问直播间对应的私钥,再调用函数ClientPublickey=RSA.CreatePair(ClientPrivatekey)生成对应的公钥。保障每个直播间公钥和私钥不一样,从而提高整个数据传输的安全性。
上述服务器100在检测到客户端200访问直播间时,均会生成与该直播间及客户端200对应的私钥及公钥,优选地,所述服务器100依照直播间对应的房间号、客户端200对应的UID以及生成的随机数据,生成对应的公钥及私钥。
在本发明实施例中,访问待检测直播间的客户端200为目标客户端。当服务器100检测到目标客户端访问待检测直播间时,则将生成的与待检测直播间及目标客户端对应的第一公钥向所述目标客户端发送。所述目标客户端接收到第一公钥后,向服务器100反馈访问待检测直播间时生成的与其对应的第二公钥。当所述目标客户端及服务器100均具有第一公钥及第二公钥时,分别利用上述第一公钥及第二公钥生成共享密钥,且生成的共享密钥相同。作为一种实施方式,可以是客户端200利用函数ShareKe y=RSA.CreateShareKey(ServerPublickey,ClientPrivatekey)生成共享密钥,服务器100调用ShareKey=RSA.CreateShareKey(ClientPublickey,ServerP rivatekey)生成共享秘钥。ServerPublickey为第一公钥,ClientPrivatekey为第二公钥。
步骤S102,从预先存储的多个检测代码片段中随机选取一目标检测代码片段。
在本发明实施例中,上述检测代码片段可以是JS代码片段。上述目标检测代码片段中设置至少一个与HTML5特性对应的全局变量信息。作为一种实施方式,预先存储的检测代码片段可以包括用于实现创建一个canvas元素、创建WebSocket连接服务器100、创建视频播放控件、获取当前浏览器信息、获取浏览器窗口大小、获取当前域名、获取浏览器的操作系统平台中至少一种功能的检测代码片段。作为一种实施方式,当检测代码片段用于运行后创建一个canvas元素时,对应的代码为:
var canvas=document.createElement('canvas');
If (canvas)
{g_flagCanvas=1;}
而其中对应的全局变量信息为g_flagCanvas。g_flagCanvas默认值是等于0,只有支持Canvas时默认值才是1。也就是虚拟客户端200虽然可以在破译了服务器100的通信协议后,向服务器100反馈创建canvas元素的执行结果为成功,但是由于其并没有在HTML5协议下的浏览器运行,因此,对应的全局变量信息g_flagCanvas会依然保持默认值。本实施例中,可以由g_flagCanvas记录是否创建Canvas;当检测代码片段用于运行后创建视频播放控件时,对应的全局变量信息定义为g_video,需要说明的是,网页其实是不支持播放视频的,而目前大多是通过网页插件如Flash来进行播放,而HTML5则是支持视频播放控件创建的,g_video用于记录视频控件是否支持,如果其是在支持HTML5的浏览器中执行,g_vide o的值被置为0,否则获取不到上述的值,其值依然保持是0;当检测代码片段用于运行后获取当前浏览器信息时,对应的全局变量信息定义为g_broswe,本实施例中,g_broswe=navigator.appCodeName,也就是在浏览器环境下执行该检测代码片段获取到当前浏览器信息时,g_broswe会由0置为1;当检测代码片段用于运行后获取浏览器窗口大小时,对应的全局变量信息定义为g_winHeight,本实施例中,g_winHeight=window.in nerHeight,也就是在浏览器环境下执行该检测代码片段获取到浏览器窗口大小时,g_winHeight会由0置为1;当检测代码片段用于运行后获取当前域名时,对应的全局变量信息定义为g_domain,本实施例中,g_domai n=window.location.host,也就是在浏览器环境下执行该检测代码片段获取到当前域名时,window.location.host会由0置为1;当检测代码片段用于运行后创建WebSocket连接服务器100时。在HTML5浏览器下运行的真实目标客户端才可以利用自身对应的UID及创建连接时对应的时间戳创建WebSocket连接。具体地,可以运行该检测代码片段通过:
var socket=new WebSocket('服务器100域名');
Socket.send(“uid+time”)
向服务器100发送WebSocket连接。服务器100在接收到WebSocket连接后,根据该连接获取对应的UID及创建连接时对应的时间戳,并存储为WebSocket连接记录。作为一种可以的实施方式,检测代码片段均包括实现创建WebSocket连接服务器100的功能。本发明实施例中,可以随机抽选预存储的检测代码片段中选取可以实现上述至少一项功能的目标检测代码片段;也可以采用轮询的方式选出目标检测代码片段,也可以分别为不同的房间挑选不同的目标检测代码片段。
步骤S103,将选取的所述目标检测代码片段发送给访问待检测直播间的目标客户端。
在本发明实施例中,将目标检测代码片段发送给目标客户端。需要说明的是,相关技术中,虚拟客户端200不执行目标检测代码片段,其仅依靠破译的协议后向服务器100发送执行结果,例如,反馈创建视频播放空间成功或浏览器窗口的具体尺寸数据。
步骤S104,接收所述目标客户端反馈的执行所述目标检测代码片段的执行数据。
在本发明实施例中,所述执行数据包括记录了所述目标检测代码片段执行过程的全局标记及执行结果。上述全局标记与所述目标检测代码片段中的全局变量信息对应。上述全局标记为从客户端200从执行后的目标检测代码片段中提取全局变量信息对应的取值。目标客户端将执行数据利用共享密钥进行加密。优选地,目标客户端可以利用共享密钥及创建WebSocket连接对应的时间戳对执行数据进行加密,并在加密之后反馈给服务器100。
步骤S105,分别利用对应的所述共享密钥对所述执行数据进行解密处理,以获得对应的所述全局标记及执行结果数据。
在本发明实施例中,利用所述目标客户端对应的UID查询是否存在对应的WebSocket连接记录。上述WebSocket连接记录由服务器100根据接收到的WebSocket连接生成。所述WebSocket连接由所述目标客户端利用对应的UID及对应的时间戳创建。当存在时,获取对应的所述时间戳,根据所述时间戳及共享密钥对所述执行数据进行解密,以获得对应的所述全局标记及执行结果数据。
步骤S106,根据接收到的与所述待检测直播间对应的执行数据,获取并分析所述待检测直播间对应的人气数据。
在本发明实施例中,可以通过分别验证所述全局标记及执行结果数据是否满足预定要求。每一个目标检测代码片段对应一预定要求,例如,目标检测代码片段为用于实现创建一个canvas元素的JS代码片段时,对应于g_flagCanvas的全局标记为1且执行结果为创建成功则满足预定要求。进一步地,当所述全局标记及执行结果数据均满足时,确认对应的所述执行数据为合格数据。再将所述合格数据中的伪装执行数据筛除。具体地,在所述合格数据中,当一个执行数据与其他超过预定数目的执行数据完全相同,则将它们均认定为伪装执行数据。统计筛除了所述伪装执行数据的合格数据的数量,以作为所述人气数据。
第二实施例
请参照图4,是本发明较佳实施例提供一种直播间人气处理方法的步骤流程图。上述直播间人气处理方法应用于客户端200。具体地,应用于访问待检测直播间的目标客户端。如图4所示,所述方法包括:
步骤S201,接收所述服务器100发送的目标检测代码片段。
在本发明实施例中,所述目标检测代码片段由所述服务器100从预先存储的检测代码片段随机选取,所述目标检测代码片段中设置至少一个与HTML5特性对应的全局变量信息。
在该步骤之前,目标客户端在进入待检测直播间时,生成与访问的待检测直播间对应的第二公钥,以便当接收到所述服务器100发送的第一公钥时,向所述服务器100发送所述第二公钥;根据所述第一公钥及第二公钥生成共享密钥。
步骤S202,执行所述目标检测代码片段,以获得执行结果数据。
步骤S203,从执行后的所述目标检测代码片段中提取与所述全局变量信息对应的全局标记。
步骤S204,根据所述全局标记及执行结果数据生成执行数据。
在本发明实施例中,利用所述共享密钥对所述全局标记及执行结果数据进行加密处理,以获得所述执行数据。
步骤S205,将所述执行数据发送至所述服务器100,以便所述服务器100根据接收到的所述执行数据获取并分析所述待检测直播间对应的人气数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的方法的具体流程与第一实施例提供的直播间人气处理方法对应,可以参考前述实施例中的对应过程,在此不再赘述。
第三实施例
请参照图5,是本发明较佳实施例提供一种直播间人气处理装置400。所述装置应用于服务器100。所述直播间人气处理装置400包括交换模块401、选取模块402、发送模块403、接收模块404、解码模块405及处理模块406。
交换模块401,用于当检测到所述目标客户端访问所述待检测直播间时,与所述目标客户端交换密钥,以生成与所述目标客户端对应的共享密钥。
在本发明实施例中,步骤S101可以由交换模块401执行。
选取模块402,用于从预先存储的检测代码片段随机选取一目标检测代码片段,其中,所述目标检测代码片段中设置至少一个与HTML5特性对应的全局变量信息。
在本发明实施例中,步骤S102可以由选取模块402执行。
发送模块403,用于将选取的所述目标检测代码片段发送给访问待检测直播间的目标客户端。
在本发明实施例中,步骤S103可以由发送模块403执行。
接收模块404,用于接收所述目标客户端反馈的执行所述目标检测代码片段的执行数据,其中,所述执行数据包括记录了所述目标检测代码片段执行过程的全局标记,所述全局标记与所述目标检测代码片段中的全局变量信息对应。
在本发明实施例中,步骤S104可以由接收模块404执行。
解码模块405,用于分别利用对应的所述共享密钥对所述执行数据进行解密处理,以获得对应的所述全局标记及执行结果数据。
在本发明实施例中,步骤S105可以由解码模块405执行。
处理模块406,用于根据接收到的与所述待检测直播间对应的执行数据,获取并分析所述待检测直播间对应的人气数据。
在本发明实施例中,步骤S106可以由处理模块406执行。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还揭示了一种计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被处理器103执行时实现本发明前述实施例揭示的直播间人气处理方法。
综上所述,本发明提供的直播间人气处理方法、装置、服务器及存储介质。其中,所述方法应用于服务器,所述服务器与多个客户端通信连接,所述方法包括:从预先存储的检测代码片段随机选取一目标检测代码片段,其中,所述目标检测代码片段中设置至少一个与HTML5特性对应的全局变量信息;将选取的所述目标检测代码片段发送给访问待检测直播间的目标客户端;接收所述目标客户端反馈的执行所述目标检测代码片段的执行数据,其中,所述执行数据包括记录了所述目标检测代码片段执行过程的全局标记,所述全局标记与所述目标检测代码片段中的全局变量信息对应;根据接收到的与所述待检测直播间对应的执行数据,即可筛除虚假的人气数据,统计出所述待检测直播间对应的准确的人气数据。确保用户可以获得真实的人气信息,提高用户体验。同时还能有助于直播平台对直播间进行有效的管理。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。