直播中添加游戏好友的方法及装置与流程

文档序号:11369134阅读:824来源:国知局
直播中添加游戏好友的方法及装置与流程

本发明涉及互联网技术领域,尤其涉及一种直播中添加游戏好友的方法及装置。



背景技术:

目前,随着网络通信技术的进步和宽带网络的提速,网络直播平台应运而生,网络直播得到了越来越多的发展和应用。尤其在游戏直播领域,随着弹幕的发展,使得游戏直播具有更好的互动性和趣味性,越来越多的观众会观看游戏主播的直播。对于游戏直播来说,主播通过一边玩游戏一边讲解游戏的玩法,而对于同一个直播间的所有观众来说,大家都是该游戏的爱好者也是该主播的观众,那么在游戏中主播也希望和这群爱好者互为好友关系,同时这些观众也想和游戏主播在游戏中为好友关系。

在实现本发明的过程中,发明人发现由于目前游戏是个封闭环境,其只能通过主播在游戏中一个一个添加,以为直播间的观众建立好友关系,而且直播平台这边只有观众信息,主播也无法在游戏中建立好友关系,只能通过主播人工的咨询观众游戏信息,然后在游戏中添加观众为好友,由于观众数量比较大,因此不仅需要消耗人力,而且需要花费大量的时间。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的直播中添加游戏好友的方法及装置。

本发明的一个方面,提供了一种直播中添加游戏好友的方法,包括:

获取游戏直播间中各个观众用户的个人信息,所述个人信息中包括账号信息和游戏信息;

根据各个观众用户的账号信息筛选出满足预设筛选条件的目标观众用户;

根据预先在当前直播软件中建立的命名管道,将所述目标观众用户的游戏信息发送到所述命名管道的客户端模块,以供所述客户端模块调用所述游戏直播间对应的直播游戏的游戏进程中的好友添加函数,建立所述游戏直播间的主播用户与所述目标观众用户之间的游戏好友关系,所述命名管道用于实现所述直播软件与所述游戏进程之间的通信,以及将所述客户端模块注入在所述游戏进程中。

可选地,所述方法还包括:

预先在所述直播软件中创建所述命名管道的服务端模块,并将所述命名管道的客户端模块注入到所述游戏进程中;

建立所述服务端模块与所述客户端模块的通信连接。

可选地,所述将所述命名管道的客户端模块注入到所述游戏进程中,包括:

在所述游戏进程的内存空间中分配内存区域;

将所述客户端模块的物理路径写入到所述内存区域中;

在所述游戏进程中创建用于加载所述客户端模块的物理路径的线程。

可选地,所述方法还包括:

解析所述好友添加函数在所述游戏进程中对应的内存地址,以供所述客户端模块通过所述内存地址调用所述好友添加函数。

可选地,所述方法还包括:

当用户进行注册时,在注册页面的个人信息设置中配置游戏信息设置项。

可选地,所述获取游戏直播间中各个观众用户的个人信息之前,所述方法还包括:

在所述主播用户的显示页面中配置目标观众用户的筛选条件设置项。

本发明的另一个方面,提供了一种直播中添加游戏好友的装置,包括:

信息获取模块,用于获取游戏直播间中各个观众用户的个人信息,所述个人信息中包括账号信息和游戏信息;

用户筛选模块,用于根据各个观众用户的账号信息筛选出满足预设筛选条件的目标观众用户;

好友添加模块,用于根据预先在当前直播软件中建立的命名管道,将所述目标观众用户的游戏信息发送到所述命名管道的客户端模块,以供所述客户端模块调用所述游戏直播间对应的直播游戏的游戏进程中的好友添加函数,建立所述游戏直播间的主播用户与所述目标观众用户之间的游戏好友关系,所述命名管道用于实现所述直播软件与所述游戏进程之间的通信,以及将所述客户端模块注入在所述游戏进程中。

可选地,所述装置还包括:

配置模块,用于预先在所述直播软件中创建所述命名管道的服务端模块,并将所述命名管道的客户端模块注入到所述游戏进程中;

连接建立模块,用于建立所述服务端模块与所述客户端模块的通信连接。

可选地,所述配置模块,具体用于在所述游戏进程的内存空间中分配内存区域,将所述客户端模块的物理路径写入到所述内存区域中,在所述游戏进程中创建用于加载所述客户端模块的物理路径的线程。

可选地,所述装置还包括:

地址解析模块,用于解析所述好友添加函数在所述游戏进程中对应的内存地址,以供所述客户端模块通过所述内存地址调用所述好友添加函数。

本发明实施例提供的直播中添加游戏好友的方法及装置,通过预先设置的筛选条件自动从游戏直播间的各个观众用户中筛选出满足的目标观众用户,然后自动的调用游戏进程中的好友添加函数来建立游戏直播间的主播用户与各个目标观众用户之间的游戏好友关系,在游戏直播中批量的自动化的实现对所有满足条件的观众用户的游戏好友添加,极大的节省了好友添加过程中花费的人力和时间。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例的一种直播中添加游戏好友的方法的流程图;

图2为本发明实施例的一种直播中添加游戏好友的装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。

图1示意性示出了本发明一个实施例的直播中添加游戏好友的方法的流程图。参照图1,本发明实施例的直播中添加游戏好友的方法具体包括以下步骤:

步骤s11、获取游戏直播间中各个观众用户的个人信息,所述个人信息中包括账号信息和游戏信息。

其中,所述的账号信息包括观众用户的用户名、用户等级、观众用户在此游戏直播间停留的时间、观众用户来此游戏直播间的次数等等。所述的游戏信息包括游戏名称、游戏中使用的角色名称、角色id、角色账号等等。

本实施例中,当用户进行注册时,在注册页面的个人信息设置中配置游戏信息设置项。

本实施例中,在所述获取游戏直播间中各个观众用户的个人信息之前,所述方法还包括:在所述主播用户的显示页面中配置目标观众用户的筛选条件设置项。

在直播平台中,当用户进行注册时,在注册页面的个人信息设置中配置游戏信息设置项。用户可以在设置中添加游戏名称,游戏中使用的角色名称或者id。通过这个设置就建立了直播平台的账号和游戏的角色账号之间的对应关系。同时可以设置多个游戏。具体的设置如下:

uid:xxx直播平台观众的唯一id。

游戏名称:xxx游戏的名称。

游戏的角色名:xxx对应上面游戏的角色名称。

游戏名称:xxx游戏的名称。

游戏的角色名:xxx对应上面游戏的角色名称。

上面示例就对观众用户设置了2个游戏中的角色名称。可理解的,通过设置还可以添加多个游戏的角色名等,对此本发明不作具体限定。

步骤s12、根据各个观众用户的账号信息筛选出满足预设筛选条件的目标观众用户。

本实施例中,当主播用户在使用直播软件进行直播游戏时,在该直播房间中是可以获取到所有观众用户的账号信息,同时可以通过账号信息对观众进行过滤,比如可以通过过滤观众的等级、观众在此房间停留的时间、观众来此房间的次数等等。主播可以通过这些信息来挑选出满足预设筛选条件的目标观众用户。过滤出满足条件的观众后,可以通过从观众用户的游戏信息中获取到所有满足筛选条件的目标观众用户在该对应游戏下的游戏角色名称。

在实际应用中,主播用户在游戏直播时,会在打开直播平台的直播软件进行直播,同时也会打开需要直播的游戏,即在主播段是同时存在游戏进程和直播软件进程。直播平台提供给主播设置直播间的筛选条件设置项,主播设置完成筛选条件后,可以自动的过滤出满足筛选条件的观众用户,极大的节省了人力,同时整个过程对主播都是透明的,主播只需要设置满足观众的条件,就可以实现批量的自动化的添加所有满足条件的观众为好友的方法。对于游戏来说,游戏中角色的名字就是游戏的唯一标示,通过名字则可以找到对应的游戏角色。而对于直播平台来说,在观众注册为该直播平台的观众时,可以在账号信息设置中添加设置游戏名,游戏角色名等信息,通过设置的这些信息,在观众进入到直播平台的直播房间后,主播可以通过直播平台获取到观众的设置信息,从而可以获取到对应游戏的角色名等信息,以便于后续根据游戏的角色名信息,通过调用游戏的添加好友功能来实现游戏内的添加好友功能。

步骤s13、根据预先在当前直播软件中建立的命名管道,将所述目标观众用户的游戏信息发送到所述命名管道的客户端模块,以供所述客户端模块调用所述游戏直播间对应的直播游戏的游戏进程中的好友添加函数,建立所述游戏直播间的主播用户与所述目标观众用户之间的游戏好友关系,所述命名管道用于实现所述直播软件与所述游戏进程之间的通信,以及将所述客户端模块注入在所述游戏进程中。

本发明实施例提供的直播中添加游戏好友的方法,通过预先设置的筛选条件自动从游戏直播间的各个观众用户中筛选出满足的目标观众用户,然后自动的调用游戏进程中的好友添加函数来建立游戏直播间的主播用户与各个目标观众用户之间的游戏好友关系,在游戏直播中批量的自动化的实现对所有满足条件的观众用户的游戏好友添加,极大的节省了好友添加过程中花费的人力和时间。

本发明实施例中,所述方法还包括以下步骤:

预先在所述直播软件中创建所述命名管道的服务端模块,并将所述命名管道的客户端模块注入到所述游戏进程中;

建立所述服务端模块与所述客户端模块的通信连接。

命名管道,是通过网络来完成进程间的通信,它屏蔽了底层的网络协议细节。本发明实施例,通过命名管道实现了直播软件与游戏进程中注入的模块之间的通信。而游戏当中的命名管道功能是通过注入到游戏进程中的客户端模块实现的。在命名管道中,通过将注入的模块作为命名管道的客户端,主播软件作为命名管道的服务端。

首先创建一个命名管道,然后等待客户端来连接。一旦命名管道的客户端注入到游戏进程中开始运行后,该模块会去连接这个命名管道,一旦连接上这个命名管道,那么就可以实现直播软件和游戏中的注入模块进行通信。具体的实现方法如下:

一、直播软件命名管道服务端:

1.调用windowsapi函数createnamedpipe创建命名管道。

其中需要参数命名管道的名字,这个名字可以用户自己定一个唯一标识,不会与系统其他进程的管道重名即可。命名管道的客户端模块会通过这个名字来连接这个管道。

2.通过调用函数connectnamedpipe来等待命名管道的客户端连接。

3.一旦客户端连接上了,调用函数readfile来读取客户端发送过来的数据,该数据是告诉服务端,客户端已经完成连接可以进行通信等。

4.然后通过调用函数writefile往命名管道中写入获取的所有满足筛选条件的目标观众用户的游戏角色名称。

二、被注入到游戏中的命名管道客户端模块:

1.客户端模块通过调用函数createfile来连接服务端创建的命名管道。命名管道的名字可以事先定义好的唯一名称。

2.客户端模块通过调用函数waitnamedpipe来等待服务端的响应。

3.客户端模块通过调用函数writefile向管道中写入数据。

4.客户端模块通过调用函数readfile来从管道中读取服务端发送的观众游戏角色信息。

本发明实施例实现了一个命名管道,通过直播软件的服务端模块不断的将弹幕的信息写入命名管道中,被注入到游戏进程的客户端模块则从命名管道中收取观众的游戏角色信息。

本实施例中,所述将所述命名管道的客户端模块注入到所述游戏进程中,具体包括:

在所述游戏进程的内存空间中分配内存区域;

将所述客户端模块的物理路径写入到所述内存区域中;

在所述游戏进程中创建用于加载所述客户端模块的物理路径的线程。

在实际应用中,可以通过调用windows系统提供的api函数来将一个模块注入到另一个游戏进程中。具体的,通过windows系统api函数createremotethread来在游戏进程中创建一个远程线程,之所以称为远程线程是因为这个线程是直播软件进程在游戏进程中创建的一个线程,通过创建的远程线程去调用系统函数loadlibrary来加载需要注入到游戏进程的模块。具体实现如下:

1.通过windowsapi函数virtualallocex函数在目标进程的内存空间中分配内存区域,其中,目标进程具体是指游戏进程。

2.通过windowsapi函数writeprocessmemory来将自己编写的需要注入的客户端模块的磁盘路径写入到已经分配的内存区域中。

3.调用windowsapi函数createremotethread函数来在目标进程中创建一个线程,线程的执行逻辑就是调用windowsapi函数loadlibrary来加载通过在目标进程空间写入的客户端模块的磁盘路径。这样就实现了在目标进程开启一个线程,通过线程来加载一个模块,实现了对目标进程注入一个模块的功能。

本发明实施例实现了将管道通信的客户端模块注入到游戏进程中的功能,从而为后续进程间通信提供了可能。

本实施例中,所述方法具体还包括:解析所述好友添加函数在所述游戏进程中对应的内存地址,以供所述客户端模块通过所述内存地址调用所述好友添加函数。

本发明实施例,通过去反汇编分析游戏进程中添加好友会调用的函数,可以通过windows提供的动态调试工具windbg来动态调试游戏进程,来寻找游戏中所调用的好友添加函数来实现添加游戏好友的,同时查找添加好友所需要传入的参数等。游戏中添加好友的功能函数对应与游戏进程则是一个内存地址。由于游戏已经发布,那么其在内存中的代码都是汇编语言形式存在的,所以本发明实施例只能通过调用汇编语言的形式去调用游戏的好友添加函数。具体实现如下:

其中,__asm{}括起来的内容标示在c语言中内嵌入汇编代码。

其中具体的汇编代码则是通过push传入函数所需要的参数信息,其中包括游戏角色的名字。

其中rolenam和rolethis和addfriends这3个参数的值则是一个内存地址,3个内存地址具体则是通过windbg动态调试分析来找到。

然后通过传入cpu寄存器中的ecx寄存器位已经实例化的好友管理对象的地址(在c++中对象的地址都是存储在ecx寄存器中)。

最后则通过汇编指令call来调用游戏的好友添加函数。

由于客户端模块被注入到了游戏进程中,该模块和游戏属于同一个进程空间,所以他可以直接调用游戏的函数。具体添加好友的实现方法如下:

在直播间主播使用的直播软件可以获取到所有观众用户的游戏信息,并从观众信息中可以获取到对应游戏的游戏角色名称。有了游戏角色名称则可以在调用游戏的添加好友功能来添加该游戏好友。

调用上述汇编代码则实现了添加一个角色明文rolename的游戏玩家为好友。对于其他游戏名调用同样的方法来实现对所有满足条件的观众添加游戏好友的功能。通过调用上述这段代码则实现了调用游戏中好友添加函数来实现添加好友的功能。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

图2示意性示出了本发明一个实施例的直播中添加游戏好友的装置的结构示意图。参照图2,本发明实施例的直播中添加游戏好友的装置具体包括信息获取模块201、用户筛选模块202以及好友添加模块203,其中,所述的信息获取模块201,用于获取游戏直播间中各个观众用户的个人信息,所述个人信息中包括账号信息和游戏信息;所述的用户筛选模块202,用于根据各个观众用户的账号信息筛选出满足预设筛选条件的目标观众用户;所述的好友添加模块203,用于根据预先在当前直播软件中建立的命名管道,将所述目标观众用户的游戏信息发送到所述命名管道的客户端模块,以供所述客户端模块调用所述游戏直播间对应的直播游戏的游戏进程中的好友添加函数,建立所述游戏直播间的主播用户与所述目标观众用户之间的游戏好友关系,所述命名管道用于实现所述直播软件与所述游戏进程之间的通信,以及将所述客户端模块注入在所述游戏进程中。

本发明实施例,所述装置还包括附图中未示出的配置模块和连接建立模块,所述的配置模块,用于预先在所述直播软件中创建所述命名管道的服务端模块,并将所述命名管道的客户端模块注入到所述游戏进程中;所述的连接建立模块,用于建立所述服务端模块与所述客户端模块的通信连接。

在本发明的一个可选实施例中,所述配置模块,还用于当用户进行注册时,在注册页面的个人信息设置中配置游戏信息设置项。

在本发明的一个可选实施例中,所述配置模块,还用于在所述获取游戏直播间中各个观众用户的个人信息之前,在所述主播用户的显示页面中配置目标观众用户的筛选条件设置项。

进一步地,所述配置模块,具体用于在所述游戏进程的内存空间中分配内存区域,将所述客户端模块的物理路径写入到所述内存区域中,在所述游戏进程中创建用于加载所述客户端模块的物理路径的线程。

本发明实施例中,所述装置还包括附图中未示出的地址解析模块,所述的地址解析模块,用于解析所述好友添加函数在所述游戏进程中对应的内存地址,以供所述客户端模块通过所述内存地址调用所述好友添加函数。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

此外,本发明另一实施例还提供了一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:获取游戏直播间中各个观众用户的个人信息,所述个人信息中包括账号信息和游戏信息;根据各个观众用户的账号信息筛选出满足预设筛选条件的目标观众用户;根据预先在当前直播软件中建立的命名管道,将所述目标观众用户的游戏信息发送到所述命名管道的客户端模块,以供所述客户端模块调用对应游戏进程中的好友添加函数,建立所述游戏直播间的主播用户与所述目标观众用户之间的游戏好友关系,所述命名管道用于实现所述直播软件与所述游戏进程之间的通信,所述客户端模块注入在所述游戏进程中。

本发明实施例提供的直播中添加游戏好友的方法及装置,通过预先设置的筛选条件自动从游戏直播间的各个观众用户中筛选出满足的目标观众用户,然后自动的调用游戏进程中的好友添加函数来建立游戏直播间的主播用户与各个目标观众用户之间的游戏好友关系,在游戏直播中批量的自动化的实现对所有满足条件的观众用户的游戏好友添加,极大的节省了好友添加过程中花费的人力和时间。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1