游戏数据通信方法及终端 |
|||||||
申请号 | CN201210584776.3 | 申请日 | 2012-12-28 | 公开(公告)号 | CN103906171B | 公开(公告)日 | 2017-12-26 |
申请人 | 腾讯科技(深圳)有限公司; | 发明人 | 廖海珍; | ||||
摘要 | 本 发明 的 实施例 提供一种游戏数据通信方法及终端,涉及计算机技术领域,可以在无2G或3G等通信网络的环境下,实现多人游戏。该方法包括:控制终端的无线直接连接WIFI‑Direct模 块 接收多个候选终端的WIFI‑Direct模块发送的广播消息;所述控制终端从所述多个候选终端中选择被控终端;所述控制终端的WIFI‑Direct模块与所述被控终端的WIFI‑Direct模块建立通信连接;所述控制终端的WIFI‑Direct模块通过所述通信连接与所述被控终端的WIFI‑Direct模块进行游戏数据通信。 | ||||||
权利要求 | 1.一种游戏数据通信方法,其特征在于,包括: |
||||||
说明书全文 | 游戏数据通信方法及终端技术领域[0001] 本发明涉及计算机技术领域,尤其涉及一种游戏数据通信方法及终端。 背景技术[0002] 目前,用户使用手机通过2G或3G等通信网络可以参加多人游戏,该多人游戏需要多个用户一起进行同一个游戏,例如,纸牌、麻将等等。 发明内容[0004] 本发明的实施例提供一种游戏数据通信方法及终端,可以在无2G或3G等通信网络的环境下,实现多人游戏。 [0005] 为达到上述目的,本发明的实施例采用如下技术方案: [0006] 一方面,提供一种游戏数据通信方法,包括: [0007] 控制终端的无线直接连接WIFI-Direct模块接收多个候选终端的WIFI-Direct模块发送的广播消息,所述广播消息包括候选终端的标识,所述WIFI-Direct模块用于采用WIFI-Direct技术进行数据通信; [0008] 所述控制终端从所述多个候选终端中选择被控终端; [0009] 所述控制终端的WIFI-Direct模块与所述被控终端的WIFI-Direct模块建立通信连接; [0010] 所述控制终端的WIFI-Direct模块通过所述通信连接与所述被控终端的WIFI-Direct模块进行游戏数据通信。 [0011] 另一方面,提供一种终端,包括: [0012] 无线直接连接WIFI-Direct模块,用于接收多个候选终端的WIFI-Direct模块发送的广播消息,所述广播消息包括候选终端的标识,所述WIFI-Direct模块用于采用WIFI-Direct技术进行数据通信; [0013] 选择模块,用于从所述多个候选终端中选择被控终端; [0014] 所述WIFI-Direct模块,还用于与所述被控终端的WIFI-Direct模块建立通信连接; [0015] 所述WIFI-Direct模块,还用于通过所述通信连接与所述被控终端的WIFI-Direct模块进行游戏数据通信。 [0016] 本发明实施例中,所述控制终端的WIFI-Direct模块可以与所述被控终端的WIFI-Direct模块建立通信连接,通过所述通信连接与所述被控终端的WIFI-Direct模块进行游戏数据通信。由于WIFI-Direct模块之间可以采用WIFI-Direct技术进行数据通信,不需要借助与2G或3G等通信网络,既可以实现多个设有WIFI-Direct模块的终端彼此之间的数据通信。因而,参与同一个多人游戏的各个终端可以通过WIFI-Direct模块实现游戏数据通信,与现有技术中,各个终端在无2G或3G等通信网络的环境下,无法进行同一多人游戏相比,本发明实施例可以在无2G或3G等通信网络的环境下,实现多人游戏。附图说明 [0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 [0018] 图1为本发明实施例1提供的游戏数据通信方法的一种实现流程图; [0019] 图2为本发明实施例1提供的游戏数据通信方法的另一种实现流程图; [0020] 图3为本发明实施例1提供的游戏数据通信方法的又一种实现流程图; [0021] 图4为本发明实施例2提供的终端的一种实现结构图; [0022] 图5为本发明实施例2提供的终端的另一种实现结构图。 具体实施方式[0023] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 [0024] 本发明实施例提供的方法可以在无2G或3G等通信网络的环境下,实现多人游戏。参与同一多人游戏的各个用户所使用的终端均设有无线直接连接WIFI-Direct模块,各个用户通过各自所使用终端的WIFI-Direct模块进行数据通信。不同终端的WIFI-Direct模块之间可以采用WIFI-Direct技术进行数据通信。 [0025] 本文中的控制终端、候选终端和被控终端均为设有WIFI-Direct模块的终端。其中,当某个用户使用终端发起一个多人游戏时,其所使用的终端即为控制终端,其他用户使用各自终端均可以参与到所述多人游戏,该其他用户各自使用的终端初始时为候选终端,控制终端从各个候选终端中选取多个用户终端,这些用户终端可以和控制终端一起参与所述多人游戏。本文中的多人游戏为至少有两个终端参与的游戏。 [0026] 实施例1: [0027] 如图1所示,本发明实施例提供一种游戏数据通信方法,包括: [0028] 101、控制终端的无线直接连接WIFI-Direct模块接收多个候选终端的WIFI-Direct模块发送的广播消息。 [0029] 其中,所述广播消息包括候选终端的标识,所述WIFI-Direct模块用于采用WIFI-Direct技术进行数据通信。 [0030] 为了节省控制终端的电量,所述控制终端的WIFI-Direct模块可以默认处于关闭状态,用户可以在需要时,手动开启该控制终端的WIFI-Direct模块。或者,也可以在用户启动一个多人游戏的应用时,由该应用自动触发开启该控制终端的WIFI-Direct模块。 [0031] 需要说明的是,无论是控制终端的WIFI-Direct模块,还是候选终端的WIFI-Direct模块,当WIFI-Direct模块开启后,会周期性的发送广播消息,以便于其他设有WIFI-Direct模块的终端可以接收广播消息,进而可以使得各个设有WIFI-Direct模块的终端得知彼此之间的存在。 [0032] 102、所述控制终端从所述多个候选终端中选择被控终端。 [0033] 例如,所述控制终端可以根据多人游戏所需人数及其他条件来选择被控终端,所述被控终端将和所述控制终端一起参与多人游戏。 [0034] 103、所述控制终端的WIFI-Direct模块与所述被控终端的WIFI-Direct模块建立通信连接。 [0035] 例如,所述控制终端的WIFI-Direct模块向所述被控终端的WIFI-Direct模块发送建立连接请求,所述被控终端接收到所述建立连接请求后,可以向所述控制终端的WIFI-Direct模块发送建立连接确认响应,以表示所述被控终端愿意与控制终端建立通信连接,或者向所述控制终端的WIFI-Direct模块发送建立连接拒绝响应,以表示所述被控终端拒绝与所述控制终端建立通信连接。 [0036] 当所述控制终端的WIFI-Direct模块接收到所述被控终端发送的建立连接确认响应时,说明所述控制终端的WIFI-Direct模块与所述被控终端的WIFI-Direct模块成功建立了通信连接。 [0037] 需要说明的是,本步骤是以控制终端和被控终端为例来描述如何在两个设有WIFI-Direct模块的终端之间建立通信连接,可以理解的是,任意两个被控终端的WIFI-Direct模块之间也可以参照上述同样的方法建立通信连接,在此不再赘述。 [0038] 104、所述控制终端的WIFI-Direct模块通过所述通信连接与所述被控终端的WIFI-Direct模块进行游戏数据通信。 [0039] 其中,所述控制终端与被控终端进行游戏数据通信时,控制终端可以根据实际传输数据类型的不同,实现与不同被控终端的游戏数据通信。 [0040] 例如,控制终端需要传输的数据为同步类型数据时,亦即该数据需要在被控终端上同步显示。例如,控制终端在群聊里发送的某条消息,或者,对游戏执行某项操作需要同步显示在被控终端上的,控制终端会将该同步类型数据发送给各个被控终端。 [0041] 又如,控制终端需要传输的数据为非同步类型数据时,例如,控制终端为某个被控终端分配的角色数据,只能在该被控终端上显示,不能再其他被控终端上显示,所述控制终端会将该非同步类型数据发送给相应被控终端即可。 [0042] 需要说明的是,本步骤是以控制终端为执行主体,来说明控制终端与被控终端之间的游戏数据通信,可以理解的时,某个被控终端也可以采用同样的方法实现与控制终端和其他被控终端的游戏数据通信,在此不再赘述。 [0043] 本发明实施例中,所述控制终端的WIFI-Direct模块可以与所述被控终端的WIFI-Direct模块建立通信连接,通过所述通信连接与所述被控终端的WIFI-Direct模块进行游戏数据通信。由于WIFI-Direct模块之间可以采用WIFI-Direct技术进行数据通信,不需要借助与2G或3G等通信网络,既可以实现多个设有WIFI-Direct模块的终端彼此之间的数据通信。因而,参与同一个多人游戏的各个终端可以通过WIFI-Direct模块实现游戏数据通信,与现有技术中,各个终端在无2G或3G等通信网络的环境下,无法进行同一多人游戏相比,本发明实施例可以在无2G或3G等通信网络的环境下,实现多人游戏。 [0044] 进一步地,如果所述被控终端的个数大于等于2时,本发明实施例还可以实现控制终端的动态切换,以便于均衡参与同一个多人游戏的各个终端的负载,避免多人游戏因为某一个终端的负载过大而导致中断。 [0045] 如图2所示,在上述步骤103之后,所述方法还包括: [0046] 105、所述控制终端的WIFI-Direct模块接收各个被控终端的WIFI-Direct模块周期性发送的性能参数,所述性能参数包括被控终端的剩余电量百分比和CPU使用率。 [0047] 例如,各个被控终端周期性地(例如每5秒)发送各自的剩余电量百分比和CPU使用率剩余电量百分比剩余电量百分比。 [0048] 106、所述控制终端利用各个被控终端在最新周期发送的性能参数,按照CPU的使用率将所述控制终端和剩余电量百分比超过电量最低门限值的被控终端进行升序排列。 [0049] 例如,所述电量最低门限值可以为10%(或20%),亦即剩余电量百分比超过10%(或20%)的被控终端会和所述控制终端一起按照CPU的使用率进行升序排列。 [0050] 终端的CPU的使用率越低,说明该终端的性能越好,因而,上述升序排列后,排名越靠前的终端,其性能越好。 [0051] 107、所述控制终端判断所述控制终端在升序排列后的排名是否在预设百分比之前。 [0052] 例如,所述预设百分比可以为50%,亦即判断所述控制终端在升序排列后的排名是否在前50%。 [0053] 需要说明的是,所述控制终端会使用各个被控终端在每个周期发送的性能参数执行上述步骤106和107,上述步骤106和107仅以所述控制终端使用各个被控终端在最新周期发送的性能参数为例进行说明。 [0054] 108、所述控制终端判断出所述控制终端在升序排列后的排名不在预设百分比之前,且与利用所述各个被控终端在前次周期发送的性能参数进行同样判断得出的结果相同时,将预设计数器加1,否则,将预设计数器清零,并跳转至步骤106利用各个被控终端在下一周期发送的性能参数,按照CPU的使用率将所述控制终端和剩余电量百分比超过电量最低门限值的被控终端进行升序排列,并向下执行。 [0055] 其中,所述预设计数器的初始值为零。 [0056] 109、所述控制终端判断所述预设计数器是否达到目标值。 [0057] 110、当所述预设计数器达到目标值时,所述控制终端执行控制终端的动态切换,否则,不执行控制终端的动态切换,并跳转至步骤106利用各个被控终端在下一周期发送的性能参数,按照CPU的使用率将所述控制终端和剩余电量百分比超过电量最低门限值的被控终端进行升序排列,并向下执行。 [0058] 其中,所述目标值可以设置为3。亦即,所述控制终端利用所述各个被控终端在连续3个周期发送的性能参数进行步骤107的判断,均得出的所述控制终端在升序排列后的排名不在预设百分比之前时,执行控制终端的动态切换。 [0059] 本步骤中设置了目标值,是为了避免控制终端的动态切换过于频繁,影响游戏的用户体验。 [0060] 进一步地,所述当所述预设计数器达到目标值时,所述控制终端执行控制终端的动态切换具体采用如下实现方式: [0061] 当所述预设计数器达到目标值时,所述控制终端选择升序排列后排名第一的被控终端作为新控制终端,并向各个被控终端发送广播消息,以通知新控制终端的标识。之后,原来的控制终端将成为被控终端。 [0062] 进一步地,本发明实施例为步骤104提供一种实现方式,其中,被控终端将信令(例如,资源获取请求)统一发送给控制终端进行处理,被控终端之间进行点对点的承载数据传输。 [0063] 下面以一个控制终端,三个被控终端为例,对上述步骤104的一种实现方式进行详细介绍。 [0064] 如图3所示,上述步骤104具体包括: [0065] 1041、所述控制终端的WIFI-Direct模块通过所述通信连接接收目标被控终端的WIFI-Direct模块发送的资源获取请求。 [0066] 例如,图3中被控终端A为目标被控终端,当被控终端A需要正在进行的多人游戏的某个插件(或者某个游戏)的安装文件(或者升级文件)时,被控终端A的WIFI-Direct模块可以向控制终端发送资源获取请求,以便于请求获取所述某个插件(或者某个游戏)的安装文件(或者升级文件)。 [0067] 1042、所述控制终端的WIFI-Direct模块发送广播消息,所述广播消息包括所述资源获取请求。 [0068] 例如,图3中,所述控制终端的WIFI-Direct模块向被控终端B的WIFI-Direct模块和被控终端C的WIFI-Direct模块发送广播消息。 [0069] 1043、所述控制终端的WIFI-Direct模块接收各个被控终端发送的响应消息,所述响应消息包括被控终端的资源信息。 [0070] 例如,图3中,被控终端B的WIFI-Direct模块和被控终端C的WIFI-Direct模块向所述控制终端的WIFI-Direct模块发送响应消息。 [0071] 1044、所述控制终端根据各个被控终端的资源信息和性能参数,选择最佳被控终端,所述最佳被控终端存储有所述目标被控终端请求获取的资源,且其性能满足所述资源的传输需求。 [0072] 例如,控制终端接收到被控终端B和被控终端C的资源信息后,得知被控终端B和被控终端C均存储有所述被控终端A请求获取的资源,则比较被控终端B和被控终端C的性能参数,可以选择剩余电量百分比高的被控终端作为最佳被控终端,或者选择CPU占用率低的被控终端作为最佳被控终端。 [0073] 1045、所述控制终端的WIFI-Direct模块将所述最佳被控终端的信息发送给所述目标被控终端,以使得所述目标被控终端从所述最佳被控终端获取所需资源。 [0074] 例如,图3中,最佳被控终端为被控终端B,控制终端向被控终端A发送所述被控终端B的信息,被控终端A接收到最佳被控终端的信息后,向所述控制终端发送确认信息,以表示被控终端A成功接收到最佳被控终端的信息。之后,被控终端A和被控终端B直接进行资源的点对点传输。 [0075] 实施例2: [0076] 如图4所示,本发明实施例提供一种终端,包括: [0077] 无线直接连接WIFI-Direct模块41,用于接收多个候选终端的WIFI-Direct模块发送的广播消息,所述广播消息包括候选终端的标识,所述WIFI-Direct模块用于采用WIFI-Direct技术进行数据通信; [0078] 选择模块42,用于从所述多个候选终端中选择被控终端; [0079] 所述WIFI-Direct模块41,还用于与所述被控终端的WIFI-Direct模块建立通信连接; [0080] 所述WIFI-Direct模块41,还用于通过所述通信连接与所述被控终端的WIFI-Direct模块进行游戏数据通信。 [0081] 本发明实施例中,所述控制终端的WIFI-Direct模块可以与所述被控终端的WIFI-Direct模块建立通信连接,通过所述通信连接与所述被控终端的WIFI-Direct模块进行游戏数据通信。由于WIFI-Direct模块之间可以采用WIFI-Direct技术进行数据通信,不需要借助与2G或3G等通信网络,既可以实现多个设有WIFI-Direct模块的终端彼此之间的数据通信。因而,参与同一个多人游戏的各个终端可以通过WIFI-Direct模块实现游戏数据通信,与现有技术中,各个终端在无2G或3G等通信网络的环境下,无法进行同一多人游戏相比,本发明实施例可以在无2G或3G等通信网络的环境下,实现多人游戏。 [0082] 图4所示终端还可以参见上述图1所示方法中的相关描述。 [0083] 进一步地,所述终端为控制终端,如果所述被控终端的个数大于等于2时,本发明实施例还可以实现控制终端的动态切换,以便于均衡参与同一个多人游戏的各个终端的负载,避免多人游戏因为某一个终端的负载过大而导致中断。 [0084] 其中,所述WIFI-Direct模块41,还用于接收各个被控终端的WIFI-Direct模块周期性发送的性能参数,所述性能参数包括被控终端的剩余电量百分比和CPU使用率。 [0085] 如图5所示,所述终端还包括: [0086] 处理模块43,用于利用各个被控终端在最新周期发送的性能参数,按照CPU的使用率将所述控制终端和剩余电量百分比超过电量最低门限值的被控终端进行升序排列; [0087] 所述处理模块43,还用于判断所述控制终端在升序排列后的排名是否在预设百分比之前; [0088] 所述处理模块43,还用于判断出所述控制终端在升序排列后的排名不在预设百分比之前,且与利用所述各个被控终端在前次周期发送的性能参数进行同样判断得出的结果相同时,将预设计数器加1,否则,将预设计数器清零,所述预设计数器的初始值为零; [0089] 所述处理模块43,还用于当所述预设计数器达到目标值时,执行控制终端的动态切换,否则,不执行控制终端的动态切换。 [0090] 进一步地,所述处理模块43,具体用于当所述预设计数器达到目标值时,选择升序排列后排名第一的被控终端作为新控制终端,并向各个被控终端发送广播消息,以通知新控制终端的标识。 [0091] 上述图5所示终端还可以参见上述图2所示方法的相关描述。 [0092] 进一步地,所述WIFI-Direct模块41,还用于通过所述通信连接接收目标被控终端的WIFI-Direct模块发送的资源获取请求; [0093] 所述WIFI-Direct模块41,还用于发送广播消息,所述广播消息包括所述资源获取请求; [0094] 所述WIFI-Direct模块41,还用于接收各个被控终端发送的响应消息,所述响应消息包括被控终端的资源信息; [0095] 所述选择模块42,还用于根据各个被控终端的资源信息和性能参数,选择最佳被控终端,所述最佳被控终端存储有所述目标被控终端请求获取的资源,且其性能满足所述资源的传输需求; [0096] 所述WIFI-Direct模块41,还用于将所述最佳被控终端的信息发送给所述目标被控终端,以使得所述目标被控终端从所述最佳被控终端获取所需资源。 [0097] 所述WIFI-Direct模块41的功能实现还可以参见上述图3所示方法的相关描述。 [0098] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 [0099] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。 |