组队方法、客户端、服务器及系统
技术领域
本发明涉及互联网通信领域,特别涉及一种组队方法、客户端、服务器及系统。
背景技术
团队语音工具是一种使用广泛且热门的即时通信程序。常用于多人会议、网上教学、组队协作和多人K歌等应用场景。
在使用团队语音工具进行组队协作时,常用的组队方法,包括:当前客户端在团队语音工具中进入或者建立一个空频道,并且将该频道的频道号码传递至需要组队的其它客户端,比如当前客户端的使用者将频道号码通过电话告知、通过短信发送或者通过即时通信文字信息发送给其它客户端的使用者;其它客户端在获知该频道的频道号码后,根据该频道的频道号码在团队语音工具中加入该频道,从而使得所有需要组队的客户端进入了同一频道,然后在该频道内进行语音交流。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:当前客户端必须将频道号码传递至需要组队的其它客户端,其它客户端只有获知频道号码以后才能完成组队过程。若使用当前客户端的用户和使用其它客户端的用户是不认识的两个用户,则通常不能顺利地完成组队操作。
发明内容
为了解决其它客户端没有获知频道号码时,无法顺利组队的问题,本发明实施例提供了一种组队方法、客户端、服务器及系统。所述技术方案如下:
根据本发明的第一方面,提供了一种组队方法,所述方法包括:
接收在当前频道中的第一客户端发送的组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
向所述当前频道中的所有客户端发送组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求或者所述组队状态信息包括卡位总数、卡位的内容类型和每个卡位与已入队客户端的标识之间的对应关系,所述对应关系中包含有第一卡位与所述第一客户端的标识之间的对应关系;
接收在所述当前频道中的第二客户端发送的组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
在所有卡位都存在一个已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
进一步地,所述接收在当前频道中的第一客户端发送的组队发起请求之后,所述向所述当前频道中的所有客户端发送组队状态信息之前,还包括:
读取所述当前频道的管理员所在客户端预先设置的组队设置信息,所述组队设置信息包括所述卡位总数、所述卡位的内容类型和所述入队要求或者所述组队设置信息包括所述卡位总数和所述卡位的内容类型。
进一步地,所述接收在所述当前频道中的第二客户端发送的组队加入请求之后,所述向所述当前频道中的所有客户端再次发送组队状态信息之前,还包括:
检测所述第二客户端要加入的卡位所对应的已入队客户端的标识是否为空;
若检测结果为所述第二客户端要加入的卡位所对应的已入队客户端的标识为空,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
若检测结果为所述第二客户端要加入的卡位所对应的已入队客户端的标识不为空,则向所述第二客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系之后,还包括:
接收所述第二客户端发送的组队退出请求,所述组队退出请求包括所述第二客户端的标识和所述第二客户端要退出的卡位;
向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系。
进一步地,所述接收所述第二客户端发送的组队退出请求之后,所述向所述当前频道中的所有客户端再次发送组队状态信息之前,还包括:
检测所述第二客户端要退出的卡位所对应的已入队客户端的标识是否与所述第二客户端的标识相同;
若检测结果为所述第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识相同,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
若检测结果为所述第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识不相同,则向所述第二客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系之后,还包括:
接收所述第一客户端发送的踢出队员请求,所述踢出队员请求包括所述第二卡位与所述第二客户端的标识之间的对应关系;
向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系。
进一步地,所述接收所述第一客户端发送的踢出队员请求之后,所述向所述当前频道中的所有客户端再次发送组队状态信息之前,还包括:
检测所述踢出队员请求中的所述第二卡位所对应的已入队客户端的标识是否与所述第二客户端的标识相同;
若检测结果为所述踢出队员请求中的所述第二卡位所对应的已入队客户端的标识与所述第二客户端的标识相同,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
若检测结果为所述踢出队员请求中的所述第二卡位所对应的已入队客户端的标识与所述第二客户端的标识不相同,则向所述第一客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述接收在所述当前频道中的第二客户端发送的组队加入请求之前,还包括:
接收新加入当前频道的第二客户端发送的组队状态读取请求;
向所述第二客户端发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述向所述当前频道中的所有客户端发送组队状态信息之后,还包括:
接收所述第一客户端或者所述当前频道的管理员所在客户端发送的组队取消请求,所述第一客户端发送的组队取消请求为用户主动触发或者所述组队发起请求之后的预定时间段后自动触发的请求;
向所述当前频道中的所有客户端发送组队状态信息,所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系为空。
进一步地,所述在所有卡位都存在一个已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队,包括:
在所有卡位都存在一个已入队客户端的标识与之对应后,接收所述当前频道的管理员所在客户端发送的组队完成信息;
在接收到所述组队完成信息之后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
进一步地,所述方法,还包括:
利用频道服务器作为中转服务器接收所述当前频道中的各个客户端的请求;和/或,
利用频道服务器作为中转服务器以广播形式或者单播形式向所述当前频道中的各个客户端发送信息。
根据本发明第二方面,提供了一种组队方法,用于第一客户端中,包括:
向组队服务器发送组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
接收所述组队服务器发送的组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系中包含有第一卡位与所述第一客户端的标识之间的对应关系;
接收所述组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
在所有卡位都存在一个已入队客户端的标识与之对应后,与其它已入队客户端进入同一个子频道。
进一步地,所述在所有卡位都存在一个已入队客户端的标识与之对应后,与其它已入队客户端进入同一个子频道之前,还包括:
向所述组队服务器发送踢出队员请求,所述踢出队员请求包括所述第二卡位与所述第二客户端的标识之间的对应关系;
接收所述组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系,或者,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述向组队服务器发送组队发起请求之后,还包括:
向组队服务器发送组队取消请求,所述组队取消请求为用户主动触发或者所述组队发起请求之后的预定时间段后自动触发的请求;
接收所述组队服务器再次发送的组队状态信息所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系为空。
根据本发明的第三方面,提供了一种组队方法,用于第二客户端中,包括:
接收组队服务器发送的组队状态信息,所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系中包含有第一卡位与第一客户端的标识之间的对应关系;
向所述组队服务器发送组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
接收组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
在所有卡位都存在一个已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
进一步地,所述接收组队服务器发送的组队状态信息之后,所述向组队服务器发送组队加入请求之前,还包括:
检测是否满足所述组队状态信息中的入队要求,所述入队要求包括当前频道贡献值是否达到预定阈值、当前积分是否达到预定阈值和当前频道权限是否达到预定权限要求中的至少一种;
若检测结果为满足所述组队状态信息中的入队要求,则执行所述向组队服务器发送组队加入请求的步骤。
进一步地,所述向所述组队服务器发送组队加入请求之后,还包括:
向组队服务器发送组队退出请求,所述组队退出请求包括所述第二客户端的标识和所述第二客户端要退出的卡位;
接收所述组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系,或者所述组队状态信息为当前最新的组队状态信息。
进一步地,所述接收组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系之后,还包括:
接收所述组队服务器在接收到所述第一客户端的踢出队员请求之后,再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系。
进一步地,所述接收组队服务器发送的组队状态信息之前,还包括:
进入所述当前频道之后,向所述组队服务器发送组队状态读取请求。
根据本发明的第四方面,一种组队服务器,所述服务器,包括:
第一接收模块,用于接收在当前频道中的第一客户端发送的组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
状态广播模块,用于向所述当前频道中的所有客户端发送组队状态信息,所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系中包含有第一卡位与所述第一接收模块接收到的第一客户端的标识之间的对应关系;
第二接收模块,用于接收在所述当前频道中的第二客户端发送的组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
所述状态广播模块,还用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二接收模块接收到的第二客户端的标识之间的对应关系;
频道移入模块,用于在所有卡位都存在一个所述第一接收模块或者第二接收模块接收到的已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
进一步地,所述组队服务器,还包括:设置读取模块;
所述设置读取模块,用于读取所述当前频道的管理员所在客户端预先设置的组队设置信息,所述组队设置信息包括所述卡位总数、所述卡位的内容类型和所述入队要求或者所述组队设置信息包括所述卡位总数和所述卡位的内容类型。
进一步地,所述组队服务器,还包括:加入检测模块和状态单播模块;
所述加入检测模块,用于检测所述第二接收模块接收到的第二客户端要加入的卡位所对应的已入队客户端的标识是否为空;
所述状态广播模块,还用于若所述加入检测模块的检测结果为所述第二客户端要加入的卡位所对应的已入队客户端的标识为空,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
所述状态单播模块,用于若所述加入检测模块的检测结果为所述第二客户端要加入的卡位所对应的已入队客户端的标识不为空,则向所述第二客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述组队服务器,还包括:第三接收模块;
所述第三接收模块,还用于接收所述第二客户端发送的组队退出请求,所述组队退出请求包括所述第二客户端的标识和所述第二客户端要退出的卡位;
所述状态广播模块,还用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第三接收模块接收到的第二客户端的标识之间的对应关系。
进一步地,所述组队服务器,还包括:退出检测模块和状态单播模块;
所述退出检测模块,用于检测所述第三接收模块接收到的第二客户端要退出的卡位所对应的已入队客户端的标识是否与所述第二客户端的标识相同;
所述状态广播模块,还用于若所述退出检测模块的检测结果为所述第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识相同,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
所述状态单播模块,用于若所述退出检测模块的检测结果为所述第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识不相同,则向所述第二客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述组队服务器,还包括:第四接收模块;
所述第四接收模块,用于接收所述第一客户端发送的踢出队员请求,所述踢出队员请求包括所述第二卡位与所述第二客户端的标识之间的对应关系;
所述状态广播模块,用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中删除了所述第四接收模块接收到的第二卡位与所述第二客户端的标识之间的对应关系。
进一步地,所述组队服务器,还包括:踢出检测模块和状态单播模块;
所述踢出检测模块,用于检测所述第四接收模块接收到的踢出队员请求中的所述第二卡位所对应的已入队客户端的标识是否与所述第二客户端的标识相同;
所述状态广播模块,还用于若所述踢出检测模块的检测结果为所述踢出队员请求中的所述第二卡位所对应的已入队客户端的标识与所述第二客户端的标识相同,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
所述状态单播模块,用于若所述踢出检测模块的检测结果为所述踢出队员请求中的所述第二卡位所对应的已入队客户端的标识与所述第二客户端的标识不相同,则向所述第一客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述组队服务器,还包括:第五接收模块和状态单播模块;
所述第五接收模块,用于接收新加入当前频道的第二客户端发送的组队状态读取请求;
所述状态单播模块,用于向所述第二客户端发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述组队服务器,还包括:第六接收模块;
所述第六接收模块,用于接收所述第一客户端或者所述当前频道的管理员所在客户端发送的组队取消请求,所述第一客户端发送的组队取消请求为用户主动触发或者所述组队发起请求之后的预定时间段后自动触发的请求;
所述状态广播模块,用于向所述当前频道中的所有客户端发送组队状态信息,所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系为空。
进一步地,所述频道移入模块,还包括:完成接收单元和频道移入单元;
所述完成接收单元,用于在所有卡位都存在一个已入队客户端的标识与之对应后,接收所述当前频道的管理员所在客户端发送的组队完成信息;
所述频道移入单元,用于在所述完成接收单元接收到所述组队完成信息之后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
进一步地,所述组队服务器利用频道服务器作为中转服务器接收所述当前频道中的各个客户端的请求;和/或,
所述组队服务器利用频道服务器作为中转服务器以广播形式或者单播形式向所述当前频道中的各个客户端发送信息。
根据本发明的第五方面,提供了第一客户端,包括:
第一发送模块,用于向组队服务器发送组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
状态接收模块,用于接收所述组队服务器发送的组队状态信息,所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系中包含有第一卡位与所述第一客户端的标识之间的对应关系;
所述状态接收模块,还用于接收所述组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
频道进入模块,用于在所有卡位都存在一个已入队客户端的标识与之对应后,与其它已入队客户端进入同一个子频道。
进一步地,所述第一客户端,还包括:第四发送模块;
所述第四发送模块,用于向所述组队服务器发送踢出队员请求,所述退出队员请求包括所述第二卡位与所述第二客户端的标识之间的对应关系;
所述状态接收模块,用于接收所述组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系,或者,所述组队状态信息为当前最新的组队状态信息。
进一步地,所述第一客户端,还包括:第六发送模块;
所述第六发送模块,用于向组队服务器发送组队取消请求,所述组队取消请求为用户主动触发或者所述组队发起请求之后的预定时间段后自动触发的请求;
所述状态接收模块,还用于接收所述组队服务器再次发送的组队状态信息,所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系为空。
根据本发明的第六方面,提供了第二客户端,包括:
状态接收模块,用于接收组队服务器发送的组队状态信息,所述组队状态信息包括所述卡位总数、所述卡位的内容类型、所述每个卡位与已入队客户端的标识之间的对应关系和所述入队要求或者所述组队状态信息包括所述卡位总数、所述卡位的内容类型和所述每个卡位与已入队客户端的标识之间的对应关系,所述对应关系中包含有第一卡位与第一客户端的标识之间的对应关系;
第二发送模块,用于向所述组队服务器发送组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
所述状态接收模块,还用于接收组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
频道进入模块,用于在所有卡位都存在一个已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
进一步地,所述第二客户端,还包括:要求检测模块;
所述要求检测模块,用于检测是否满足所述组队状态信息中的入队要求,所述入队要求包括当前频道贡献值是否达到预定阈值、当前积分是否达到预定阈值和当前频道权限是否达到预定权限要求中的至少一种;
所述第二发送模块,用于若所述要求检测模块的检测结果为满足所述组队状态信息中的入队要求,则执行所述向组队服务器发送组队加入请求的步骤。
进一步地,所述第二客户端,还包括:第三发送模块;
所述第三发送模块,用于向组队服务器发送组队退出请求,所述组队退出请求包括所述第二客户端的标识和所述第二客户端要退出的卡位;
所述状态接收模块,用于接收所述组队服务器再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系,或者所述组队状态信息为当前最新的组队状态信息。
进一步地,所述状态接收模块,还用于接收所述组队服务器在接收到所述第一客户端的踢出队员请求之后,再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系。
进一步地,所述第二客户端,还包括:第五发送模块;
所述第五发送模块,用于进入所述当前频道之后,向所述组队服务器发送组队状态读取请求。
根据本发明的第七方面,提供了一种组队系统,所述系统包括组队服务器、第一客户端和第二客户端;
所述组队服务器为如第四方面或者第四方面的各种进一步方案中所述的组队服务器;
所述第一客户端为如第五方面或者第五方面的各种进一步方案中所述的第一客户端;
所述第二客户端为如第六方面或者第六方面的各种进一步方案中所述的第二客户端。
根据本发明的第八方面,提供了一种组队系统,所述系统包括组队服务器、第一客户端、第二客户端和频道服务器;
所述组队服务器为如第四方面的最后一种进一步方案中所述的组队服务器;
所述第一客户端为如第五方面或者第五方面的各种进一步方案中任一所述的第一客户端;
所述第二客户端为如第六方面或者第六方面的各种进一步方案中所述的第二客户端。
本发明实施例提供的技术方案带来的有益效果是:
通过接收第一客户端的组队发起请求,然后向当前频道内的所有客户端发送组队状态信息,然后接收当前频道内的第二客户端根据组队状态信息发送的组队加入请求;解决了其它客户端没有获知频道号码时,无法顺利组队的问题;达到了只要第一客户端在当前频道内发起了组队,第二客户端可以自由加入该组队,从而完成组队过程的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的组队方法的方法流程图;
图2是本发明实施例二所涉及的实施环境的结构示意图;
图3是本发明实施例二提供的组队方法的方法流程图;
图4A至图4D是本发明实施例二提供的组队方法的实施示意图;
图5是本发明实施例三提供的组队系统的结构方框图;
图6是本发明实施例四提供的组队系统的结构方框图;
图7是本发明实施例四提供的频道移入模块的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
请参考图1,其示出了本发明实施例一提供的组队方法的方法流程图。本实施例主要以该组队方法应用于包含第一客户端、至少一个第二客户端和组队服务器的组队系统中举例说明。该组队方法,包括:
步骤102,在当前频道中的第一客户端向组队服务器发送组队发起请求,该组队发起请求中携带有第一客户端的标识;
团队语音工具通常将所有用户按照类别或者需求划分在一个个频道或者子频道中,比如,“90歌声会”频道、“xx演唱会”频道、“xx游戏解说”频道或者“国学交流”频道等等。频道是具有相同交流主题的用户所处的同一交流区域,也有可能称之为房间、聊天室之类的其它名称。以一个频道包括多个客户端的场景为例,在需要组队时,当前频道中的第一客户端可以向组队服务器发送组队发起请求,该组队发起请求中携带有第一客户端的标识。第一客户端的标识用于在团队语音工具中唯一识别第一客户端的身份。
相应地,组队服务器接收在当前频道中的第一客户端发送的组队发起请求,该组队发起请求携带有第一客户端的标识。
步骤104,组队服务器向当前频道中的所有客户端发送组队状态信息,该组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,该对应关系中包含有第一卡位与第一客户端的标识之间的对应关系;
组队服务器在接收到当前频道中的第一客户端发送的组队发起请求之后,向当前频道中的所有客户端发送组队状态信息。组队状态信息可以包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容。一个卡位表示一个组队中的一个队员的位置,比如一个组队有5个卡位,则表示总共需要5个队员;卡位的内容类型是指卡位上需要显示的信息,通常包括已入队客户端的标识和介绍信息等;每个卡位与已入队客户端的标识之间的对应关系是指当一个客户端加入一个卡位后,该客户端的标识和该卡位之间的对应关系,比如,客户端A加入了第2个卡位,则客户端A的标识“0981”与第2个卡位之间的对应关系;入队要求则是可选条件,通常包括当前频道贡献值是否达到预定阈值、当前积分是否达到预定阈值和当前频道权限是否达到预定权限要求中的至少一种。
由于第一客户端发起了组队发起请求,所以第一客户端默认作为队长加入了第一卡位。组队服务器本次发送的组队状态信息的对应关系中包含有第一卡位与第一客户端的标识之间的对应关系。
相应地,在当前频道中的所有客户端都会接收组队服务器发送的组队状态信息,比如在当前频道中的第一客户端和至少一个第二客户端都会接收到组队服务器发送的组队状态信息。
步骤106,在当前频道中的第二客户端向组队服务器发送组队加入请求,该组队加入请求中包括第二客户端的标识和第二客户端要加入的卡位;
第二客户端在接收到组队服务器发送的组队状态信息之后,可以获知当前的组队状态。然后在希望加入组队时,第二客户端向组队服务器发送组队加入请求,该组队加入请求中包括第二客户端的标识和第二客户端要加入的卡位,比如,组队服务器向第二客户端发送的组队状态信息包括:卡位总数“5”、卡位的内容类型“已入队客户端的标识”、对应关系“第一卡位与第一客户端的标识对应,其它四个卡位所对应的已入队客户端的标识为空”;则第二客户端可以向组队服务器发送组队加入请求,该组队加入请求包括第二客户端的标识和第二客户端要加入的卡位为“第二卡位”。
相应地,组队服务器可以接收到第二客户端发送的组队加入请求,并在接收到组队加入请求之后,将第二客户端的标识与第二卡位对应,然后添加入对应关系中。
步骤108,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中包含有第二卡位与第二客户端的标识之间的对应关系;
为了让其他客户端获知第二客户端加入了第二卡位,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中包含有第二卡位与第二客户端的标识之间的对应关系。在当前频道中的所有客户端包括第一客户端和第二客户端。
需要说明的是,第二客户端可以不止一个,比如卡位总数为5时,可以有4个第二客户端加入组队,从而成为该组队中的队员。也即步骤106和步骤108可能会进行多次。
步骤110,在所有卡位都存在一个已入队客户端的标识与之对应后,组队服务器将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
在所有卡位都存在一个已入队客户端的标识与之对应后,组队服务器将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队,比如,卡位总数为5时,如果5个卡位都存在一个客户端加入,则组队服务器可以将这5个客户端移入同一个子频道中来完成组队。
对于第一客户端或者第二客户端来讲,在所有卡位都存在一个已入队客户端的标识与之对应后,自身与其它已入队客户端进入同一个子频道。
综上所述,本实施例提供的组队方法,通过接收第一客户端的组队发起请求,然后向当前频道内的所有客户端发送组队状态信息,然后接收当前频道内的第二客户端根据组队状态信息发送的组队加入请求;解决了其它客户端没有获知频道号码时,无法顺利组队的问题;达到了只要第一客户端在当前频道内发起了组队,第二客户端可以自由加入该组队从而完成组队过程的效果。
需要说明的是,根据执行主体的不同,上述组队方法中的部分步骤可以拆分,而单独实现成为组队服务器、第一客户端和第二客户端单侧执行的组队方法。
请参考图2,其示出了本发明实施例二所涉及的实施环境的结构示意图。该实施环境包括至少1个客户端202、频道服务器204和组队服务器206。
各个客户端202通过无线或者有线网络与频道服务器204相连;
频道服务器204通过无线或者有线网络与组队服务器206相连。
频道服务器204具有透传能力和广播及单播能力。各个客户端202与组队服务器206不进行直接通信。具体来讲:
各个客户端202向组队服务器206发送请求信息时,频道服务器204作为中转服务器,将请求信息通过透传通道发送给组队服务器206。
组队服务器206收到请求信息后,进行相应的处理。当需要向全部或者部分客户端202下发信息时,组队服务器206先将信息发送给频道服务器204。
频道服务器204接收到信息后,以广播或者单播的形式发送给全部或者部分客户端202。
实施例二
请参考图3,其示出了本发明实施例二提供的组队方法的方法流程图。本实施例主要以该组队方法应用于图2所示的实施环境中来举例说明。该组队方法,包括:
步骤302,第一客户端向组队服务器发送组队发起请求,组队发起请求携带有第一客户端的标识;
以当前频道包括多个客户端的场景为例,在需要组队时,当前频道中的第一客户端可以向组队服务器发送组队发起请求,该组队发起请求中携带有第一客户端的标识。第一客户端的标识用于在团队语音工具中唯一识别第一客户端的身份。
在团队语音工具中,第一客户端发起组队后,同时成为当前麦序下的上麦人。麦序模式是指在当前频道中划分多个麦序时间段,每个麦序时间段只能有1个客户端占用麦克风,也即上麦人,其它客户端只能听或者发文字信息的模式。结合图4A可知,第一客户端可以点击当前界面上显示的“抢麦”按钮41或者第一卡位上的“开始组队”按钮42来向组队服务器发送组队发起请求。
相应地,组队服务器接收在当前频道中的第一客户端发送的组队发起请求,该组队发起请求携带有第一客户端的标识。
步骤304,组队服务器向当前频道中的所有客户端发送组队状态信息,该组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,对应关系中包含有第一卡位与第一客户端的标识之间的对应关系;
组队服务器在接收到当前频道中的第一客户端发送的组队发起请求之后,向当前频道中的所有客户端发送组队状态信息。组队状态信息可以包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容。一个卡位表示一个组队中的一个队员的位置,比如一个组队有5个卡位,则表示总共需要5个队员;卡位的内容类型是指卡位上需要显示的信息,通常包括已入队客户端的标识、头像、等级和介绍信息等;每个卡位与已入队客户端的标识之间的对应关系是指当一个客户端加入一个卡位后,该客户端的标识和该卡位之间的对应关系,比如,客户端“张三”作为第一客户端加入了第1个卡位,则客户端“张三”的标识“0981”与第1个卡位之间的对应关系;入队要求则是可选条件,通常包括当前频道贡献值是否达到预定阈值、当前积分是否达到预定阈值和当前频道权限是否达到预定权限要求中的至少一种。
由于第一客户端发起了组队发起请求,所以第一客户端默认作为队长加入了第一卡位。组队服务器本次发送的组队状态信息的对应关系中包含有第一卡位与第一客户端的标识之间的对应关系。
相应地,在当前频道中的所有客户端都会接收组队服务器发送的组队状态信息,比如在当前频道中的第一客户端和至少一个第二客户端都会接收到组队服务器发送的组队状态信息。
之后,在当前频道中的各个客户端可以根据接收到的组队状态信息获知当前最新的组队状态。各个客户端可以根据组队状态信息在自身的界面上显示卡位和各个卡位的内容。结合图4B可知,假设组队状态信息为:卡位总数“5”、卡位的内容类型“头像+与标识对应的昵称+介绍”、每个卡位与已入队客户端的标识之间的对应关系,该对应关系包括第一卡位与第一客户端的标识之间的对应关系,则第一客户端接收到组队状态信息之后,可以在当前界面上显示5个卡位43,每个卡位43中显示有头像44、与客户端的标识对应的昵称45和介绍46。同时,第一卡位中显示了第一客户端的“头像+与标识对应的昵称+介绍”。
对于其它客户端的显示过程,可以参考图4B所示。
需要说明的是,卡位总数、卡位的内容类型和入队要求等组队设置信息可以是始终不变的,也可以是通过设置按需要变化的。若组队设置信息是可变的,则本步骤之前,组队服务器可以读取当前频道的管理员所在客户端预先设置的组队设置信息,组队设置信息包括卡位总数、卡位的内容类型和入队要求中的全部三项内容或者前两项内容。比如,当前频道的管理员所在客户端可以在上一次组队过程中修改组队设置信息,然后修改后的组队设置信息在本次组队过程中生效。
步骤306,第二客户端进入当前频道之后,向组队服务器发送组队状态读取请求;
假设第二客户端初始并不在当前频道中,在第一客户端发送组队状态信息之后,才进入了当前客户端,则该第二客户端在进入当前频道之后,向组队服务器发送组队状态读取请求,以便获取当前最新的组队状态信息。如果第二客户端初始已经在当前频道中,则在步骤304中已经获取了相应的组队状态信息。
对应地,组队服务器可以接收新加入当前频道的第二客户端发送的组队状态读取请求。该组队状态读取请求通常携带有第二客户端的标识。
步骤308,组队服务器向第二客户端发送组队状态信息,该组队状态信息为当前最新的组队状态信息;
组队服务器在接收到第二客户端发送的组队状态读取请求之后,向第二客户端发送组队状态信息,该组队状态信息为当前最新的组队状态信息。比如,组队服务器通过频道服务器采用单播的形式根据第二客户端的标识向第二客户端发送组队状态信息。
对应地,第二客户端可以接收组队服务器发送的组队状态信息。第二客户端也可以根据组队状态信息显示卡位和各个卡位的内容,显示后的界面可以参考图4B所示。
步骤310,第二客户端向组队服务器发送组队加入请求,该组队加入请求包括第二客户端的标识和第二客户端要加入的卡位;
在希望加入该组队时,第二客户端向组队服务器发送组队加入请求。该组队加入请求包括第二客户端的标识和第二客户端要加入的卡位。结合图4B所示,第二客户端的光标停留在第二卡位后,第二客户端可以点击自身界面上要加入卡位上的“+”号按钮46,从而向组队服务器发出组队加入请求。
优选地,如果组队状态信息中包含有入队要求,则第二客户端在发送组队加入要求之前,先检测是否满足组队状态信息中的入队要求,入队要求包括当前频道贡献值是否达到预定阈值、当前积分是否达到预定阈值和当前频道权限是否达到预定权限要求中的至少一种。
若检测结果为满足组队状态信息中的入队要求,则向组队服务器发送组队加入请求。
若检测结果为不满足组队状态信息中的入队要求,则不向组队服务器发送组队加入请求。
对应地,组队服务器可以接收在当前频道中的第二客户端发送的组队加入请求,组队加入请求包括第二客户端的标识和第二客户端要加入的卡位。
步骤312,组队服务器向当前频道中的所有客户端再次发送组队状态信息,组队状态信息中的对应关系中包含有第二卡位与第二客户端的标识之间的对应关系;
为了让其他客户端获知第二客户端加入了第二卡位,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中包含有第二卡位与第二客户端的标识之间的对应关系。在当前频道中的所有客户端包括第一客户端和第二客户端。
之后,在当前频道中的各个客户端可以根据接收到的组队状态信息获知当前最新的组队状态。各个客户端可以根据组队状态信息在自身的界面上显示卡位和各个卡位的内容。比如,客户端“李四”作为第二客户端加入了组队,此时显示的界面可以参考图4C所示。在各个客户端在第2到n次接收到组队状态信息时,可以先将本次接收到的组队状态信息中的卡位总数和卡位的内容类型与上次接收到的组队状态信息中的卡位总数和卡位的内容类型进行比较,若比较结果相同,则更新每个卡位与已入队客户端的标识之间的对应关系;若比较结果不相同,则重新绘制和显示卡位。
需要说明的是,第二客户端可以不止一个,比如卡位总数为5时,可以有4个第二客户端加入组队,从而成为该组队中的队员。也即步骤310和步骤312可能会进行多次。
步骤314,第二客户端向组队服务器发送组队退出请求,组队退出请求包括第二客户端的标识和第二客户端要退出的卡位;
由于第二客户端加入组队后,还可能因为临时有事或者看错组队信息等原因,在组队结束前选择退出该组队。此时,第二客户端可以向组队服务器发送组队退出请求,组队退出请求包括第二客户端的标识和第二客户端要退出的卡位。结合图4C可知,第二客户端的光标停留在第二卡位后,第二客户端可以点击第二卡位上的“离开”按钮47,从而向组队服务器发送组队退出请求。
对应地,组队服务器接收第二客户端发送的组队退出请求,组队退出请求包括第二客户端的标识和第二客户端要退出的卡位。
步骤316,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中删除了第二卡位与第二客户端的标识之间的对应关系;
组队服务器在接收到第二客户端发送的组队退出请求后,可以从当前组队状态的对应关系中删除第二卡位与第二客户端的标识之间的对应关系。然后,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中删除了第二卡位与第二客户端的标识之间的对应关系;以便各个客户端可以更新组队状态。
由于组队状态信息可能因为丢包等原因,导致客户端中的组队状态信息与组队服务器中的组队状态信息不相同。组队服务器在接收到第二客户端发送的组队退出请求之后,可以检测当前最新的组队状态信息中第二客户端要退出的卡位所对应的已入队客户端的标识是否与第二客户端的标识相同;
若检测结果为第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识相同,则组队服务器从当前组队状态的对应关系中删除第二卡位与第二客户端的标识之间的对应关系。然后,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中删除了第二卡位与第二客户端的标识之间的对应关系;以便各个客户端可以更新组队状态;
若检测结果为第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识不相同,则组队服务器向第二客户端再次发送组队状态信息,该组队状态信息为当前最新的组队状态信息;以便第二客户端可以更新至当前最新的组队状态。
需要说明的是,步骤314至316是可选步骤。
步骤318,第一客户端向组队服务器发送踢出队员请求,该踢出队员请求包括第二卡位与第二客户端的标识之间的对应关系;
由于第二客户端加入组队后,作为队长的第一客户端还可能因为不喜欢第二客户端或者认为第二客户端加错组队等原因,在组队结束前选择踢出第二客户端。此时,第一客户端向组队服务器发送踢出队员请求,该踢出队员请求包括第二卡位与第二客户端的标识之间的对应关系。结合图4D可知,第一客户端的光标停留在第二卡位后,第一客户端可以点击第二卡位中的“移出队伍”按钮48,从而向组队服务器发送踢出队员请求,该踢出队员请求包括第二卡位与第二客户端的标识之间的对应关系。
对应地,组队服务器接收第一客户端发送的踢出队员请求,该踢出队员请求包括第二卡位与第二客户端的标识之间的对应关系。
步骤320,组队服务器向当前频道中的所有客户端再次发送组队状态信息,组队状态信息中的对应关系中删除了第二卡位与第二客户端的标识之间的对应关系;
组队服务器在接收到第一客户端发送的踢出队员请求后,可以从当前组队状态的对应关系中删除第二卡位与第二客户端的标识之间的对应关系。然后,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中删除了第二卡位与第二客户端的标识之间的对应关系;以便各个客户端可以更新组队状态。
由于组队状态信息可能因为丢包等原因,导致客户端中的组队状态信息与组队服务器中的组队状态信息不相同。组队服务器在接收到第一客户端发送的踢出队员请求之后,可以检测踢出队员请求中的第二卡位所对应的已入队客户端的标识是否与第二客户端的标识相同;
若检测结果为踢出队员请求中的第二卡位所对应的已入队客户端的标识与第二客户端的标识相同,则组队服务器从当前组队状态的对应关系中删除第二卡位与第二客户端的标识之间的对应关系。然后,组队服务器向当前频道中的所有客户端再次发送组队状态信息,该组队状态信息中的对应关系中删除了第二卡位与第二客户端的标识之间的对应关系;以便各个客户端可以更新组队状态。特别地,此时第二客户端可以接收到组队服务器在接收到第一客户端的踢出队员请求之后,再次发送的组队状态信息,该组队状态信息中的对应关系中删除了第二卡位与第二客户端的标识之间的对应关系。
若检测结果为踢出队员请求中的第二卡位所对应的已入队客户端的标识与第二客户端的标识不相同,则向第一客户端再次发送组队状态信息,该组队状态信息为当前最新的组队状态信息;以便第一客户端可以更新组队状态。
需要说明的是,步骤318至320也是可选步骤。上述步骤314至步骤320,在一次组队过程,可能出现0到多次。
步骤322,在所有卡位都存在一个已入队客户端的标识与之对应后,组队服务器将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
在所有卡位都存在一个已入队客户端的标识与之对应后,组队服务器将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队,比如,卡位总数为5时,如果5个卡位都存在一个客户端加入,则组队服务器可以将这5个客户端移入同一个子频道中来完成组队。具体来讲,在所有卡位都存在一个已入队客户端的标识与之对应后,组队服务器接收当前频道的管理员所在客户端(未具体示出)发送的组队完成信息;在组队服务器接收到组队完成信息之后,组队服务器将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
对于第一客户端或者第二客户端来讲,在所有卡位都存在一个已入队客户端的标识与之对应后,自身与其它已入队客户端进入同一个子频道。
需要补充说明的是,组队过程也可能在未完成之前被取消。也即步骤322之前,第一客户端或者当前频道的管理员所在客户端可能会向组队服务器发送组队取消请求,组队服务器在接收到组队取消请求后,取消组队。具体来讲,分为如下三种情形:
第一,第一客户端向组队服务器发送组队取消请求,该组队取消请求为用户主动触发的,也即第一客户端主动取消组队过程,第一客户端可以点击图4A中第一卡位中的“取消组队”按钮来向组队服务器发送组队取消请求。组队服务器取消当前组队,然后向当前频道中的所有客户端发送组队状态信息,该组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,对应关系为空。第一客户端和当前频道中的其它客户端都接收组队服务器再次发送的组队状态信息,从而取消了当前组队过程,等待下次组队过程。
第二,第一客户端向组队服务器发送组队取消请求,该组队取消请求为组队发起请求之后的预定时间段后自动触发的请求,也即第一客户端在发出组队发起请求后,获得了麦序时间段,在该麦序时间段结束时,组队过程还未完成,则第一客户端会自动取消组队过程,第一客户端可以在图4D中“当前麦序还剩”为0s时,自动向组队服务器发送组队取消请求。组队服务器取消当前组队,然后向当前频道中的所有客户端发送组队状态信息,该组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,对应关系为空。第一客户端和当前频道中的其它客户端都接收组队服务器再次发送的组队状态信息,从而取消了当前组队过程,等待下次组队过程。
第三,当前频道的管理员所在客户端也可以向组队服务器发送组队取消请求,比如当前频道的管理员将第一客户端移出了麦序,则当前频道的管理员所在客户端会向组队服务器发送组队取消请求。组队服务器取消当前组队,然后向当前频道中的所有客户端发送组队状态信息,该组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,对应关系为空。第一客户端和当前频道中的其它客户端都接收组队服务器再次发送的组队状态信息,从而取消了当前组队过程,等待下次组队过程。
综上所述,本实施例提供的组队方法,通过接收第一客户端的组队发起请求,然后向当前频道内的所有客户端发送组队状态信息,然后接收当前频道内的第二客户端根据组队状态信息发送的组队加入请求;解决了其它客户端没有获知频道号码时,无法顺利组队的问题;达到了只要第一客户端在当前频道内发起了组队,第二客户端可以自由加入该组队从而完成组队过程的效果。还通过提供组队退出、踢出队员和取消组队等功能,可以使第一客户端更加自由地完成整个组队过程,并处理组队过程中可能出现的问题。还通过利用频道服务器作为中转服务器来双向传递请求或者信息,使得尽可能沿用团队语音工具的原有系统结构,与原有系统结构更好地兼容。但是本领域技术人员易于思及的是,频道服务器并非必须存在的设备,在其它一些实施例中,可以只包含客户端和组队服务器,此时客户端和组队服务器之间直接通信。
需要说明的是,根据执行主体的不同,上述组队方法中的部分步骤可以拆分,而单独实现成为组队服务器、第一客户端和第二客户端单侧执行的组队方法。
实施例三
请参考图5,其示出了本发明实施例三提供的组队系统的结构方框图。该组队系统包括第一客户端520、第二客户端540和组队服务器560。其中:
第一客户端520,包括:
第一发送模块522,用于向组队服务器560发送组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
状态接收模块524,用于接收所述组队服务器560发送的组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系中包含有第一卡位与所述第一客户端的标识之间的对应关系;
所述状态接收模块524,还用于接收所述组队服务器560再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
频道进入模块526,用于在所有卡位都存在一个已入队客户端的标识与之对应后,与其它已入队客户端进入同一个子频道。
第二客户端540,包括:
状态接收模块542,用于接收组队服务器560发送的组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系中包含有第一卡位与第一客户端的标识之间的对应关系;
第二发送模块544,用于向所述组队服务器560发送组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
所述状态接收模块542,还用于接收组队服务器560再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
频道进入模块546,用于在所有卡位都存在一个已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
组队服务器560,包括:
第一接收模块562,用于接收在当前频道中的第一客户端520发送的组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
状态广播模块564,用于向所述当前频道中的所有客户端发送组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系中包含有第一卡位与所述第一接收模块接收到的第一客户端的标识之间的对应关系;
第二接收模块566,用于接收在所述当前频道中的第二客户端540发送的组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
所述状态广播模块564,还用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二接收模块接收到的第二客户端的标识之间的对应关系;
频道移入模块568,用于在所有卡位都存在一个所述第一接收模块562或者第二接收模块566接收到的已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
综上所述,本实施例提供的组队系统,通过接收第一客户端的组队发起请求,然后向当前频道内的所有客户端发送组队状态信息,然后接收当前频道内的第二客户端根据组队状态信息发送的组队加入请求;解决了其它客户端没有获知频道号码时,无法顺利组队的问题;达到了只要第一客户端在当前频道内发起了组队,第二客户端可以自由加入该组队从而完成组队过程的效果。
实施例四
请参考图6,其示出了本发明实施例四提供的组队系统的结构方框图。作为基于实施例三提供的更为优选的实施例,该组队系统包括第一客户端520、第二客户端540和组队服务器560。其中:
第一客户端520,包括:
第一发送模块522,用于向组队服务器560发送组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
状态接收模块524,用于接收所述组队服务器560发送的组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系中包含有第一卡位与所述第一客户端的标识之间的对应关系;
所述状态接收模块524,还用于接收所述组队服务器560再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
频道进入模块526,用于在所有卡位都存在一个已入队客户端的标识与之对应后,与其它已入队客户端进入同一个子频道。
优选地,所述第一客户端,还包括:第四发送模块527;
所述第四发送模块527,用于向所述组队服务器560发送踢出队员请求,所述退出队员请求包括所述第二卡位与所述第二客户端的标识之间的对应关系;
所述状态接收模块524,用于接收所述组队服务器560再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系,或者,所述组队状态信息为当前最新的组队状态信息。
优选地,所述第一客户端520,还包括:第六发送模块529;
所述第六发送模块529,用于向组队服务器560发送组队取消请求,所述组队取消请求为用户主动触发或者所述组队发起请求之后的预定时间段后自动触发的请求;
所述状态接收模块524,还用于接收所述组队服务器560再次发送的组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系为空。
第二客户端540,包括:
状态接收模块542,用于接收组队服务器560发送的组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系中包含有第一卡位与第一客户端的标识之间的对应关系;
第二发送模块544,用于向所述组队服务器560发送组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
所述状态接收模块542,还用于接收所述组队服务器560再次发送的组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二客户端的标识之间的对应关系;
频道进入模块546,用于在所有卡位都存在一个已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
优选地,所述第二客户端540,还包括:要求检测模块543;
所述要求检测模块543,用于检测是否满足所述组队状态信息中的入队要求,所述入队要求包括当前频道贡献值是否达到预定阈值、当前积分是否达到预定阈值和当前频道权限是否达到预定权限要求中的至少一种;
所述第二发送模块544,用于若所述要求检测模块543的检测结果为满足所述组队状态信息中的入队要求,则执行所述向组队服务器发送组队加入请求的步骤。
优选地,所述第二客户端540,还包括:第三发送模块547;
所述第三发送模块547,用于向组队服务器560发送组队退出请求,所述组队退出请求包括所述第二客户端的标识和所述第二客户端要退出的卡位;
所述状态接收模块542,用于接收所述组队服务器560再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系,或者所述组队状态信息为当前最新的组队状态信息。
优选地,所述状态接收模块542,还用于接收所述组队服务器560在接收到所述第一客户端的踢出队员请求之后,再次发送的组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第二客户端的标识之间的对应关系。
优选地,所述第二客户端540,还包括:第五发送模块549;
所述第五发送模块549,用于进入所述当前频道之后,向所述组队服务器发送组队状态读取请求。
组队服务器560,包括:
第一接收模块562,用于接收在当前频道中的第一客户端520发送的组队发起请求,所述组队发起请求携带有所述第一客户端的标识;
状态广播模块564,用于向所述当前频道中的所有客户端发送组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系中包含有第一卡位与所述第一接收模块接收到的第一客户端的标识之间的对应关系;
第二接收模块566,用于接收在所述当前频道中的第二客户端540发送的组队加入请求,所述组队加入请求包括所述第二客户端的标识和所述第二客户端要加入的卡位;
所述状态广播模块564,还用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中包含有第二卡位与所述第二接收模块接收到的第二客户端的标识之间的对应关系;
频道移入模块568,用于在所有卡位都存在一个所述第一接收模块562或者第二接收模块566接收到的已入队客户端的标识与之对应后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
优选地,所述组队服务器560,还包括:设置读取模块563;
所述设置读取模块563,用于读取所述当前频道的管理员所在客户端预先设置的组队设置信息,所述组队设置信息包括所述卡位总数、卡位的内容类型和入队要求中的全部三项内容或者前两项内容。
优选地,所述组队服务器560,还包括:加入检测模块567和状态单播模块569;
所述加入检测模块567,用于检测所述第二接收模块566接收到的第二客户端要加入的卡位所对应的已入队客户端的标识是否为空;
所述状态广播模块564,还用于若所述加入检测模块567的检测结果为所述第二客户端要加入的卡位所对应的已入队客户端的标识为空,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
所述状态单播模块569,用于若所述加入检测模块567的检测结果为所述第二客户端要加入的卡位所对应的已入队客户端的标识不为空,则向所述第二客户端540再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
优选地,所述组队服务器560,还包括:第三接收模块601;
所述第三接收模块601,还用于接收所述第二客户端540发送的组队退出请求,所述组队退出请求包括所述第二客户端的标识和所述第二客户端要退出的卡位;
所述状态广播模块564,还用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中删除了第二卡位与所述第三接收模块接收到的第二客户端的标识之间的对应关系。
优选地,所述组队服务器560,还包括:退出检测模块602和状态单播模块569;
所述退出检测模块602,用于检测所述第三接收模块601接收到的第二客户端要退出的卡位所对应的已入队客户端的标识是否与所述第二客户端的标识相同;
所述状态广播模块564,还用于若所述退出检测模块602的检测结果为所述第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识相同,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
所述状态单播模块569,用于若所述退出检测模块602的检测结果为所述第二客户端要退出的卡位所对应的已入队客户端的标识与所述第二客户端的标识不相同,则向所述第二客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
优选地,所述组队服务器560,还包括:第四接收模块603;
所述第四接收模块603,用于接收所述第一客户端发送的踢出队员请求,所述踢出队员请求包括所述第二卡位与所述第二客户端的标识之间的对应关系;
所述状态广播模块564,用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息中的对应关系中删除了所述第四接收模块接收到的第二卡位与所述第二客户端的标识之间的对应关系。
优选地,所述组队服务器560,还包括:踢出检测模块604和状态单播模块569;
所述踢出检测模块604,用于检测所述第四接收模块603接收到的踢出队员请求中的所述第二卡位所对应的已入队客户端的标识是否与所述第二客户端的标识相同;
所述状态广播模块564,还用于若所述踢出检测模块603的检测结果为所述踢出队员请求中的所述第二卡位所对应的已入队客户端的标识与所述第二客户端的标识相同,则执行所述向所述当前频道中的所有客户端再次发送组队状态信息的步骤;
所述状态单播模块569,用于若所述踢出检测模块603的检测结果为所述踢出队员请求中的所述第二卡位所对应的已入队客户端的标识与所述第二客户端的标识不相同,则向所述第一客户端再次发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
优选地,所述组队服务器560,还包括:第五接收模块605和状态单播模块569;
所述第五接收模块605,用于接收新加入当前频道的第二客户端540发送的组队状态读取请求;
所述状态单播模块569,用于向所述第二客户端540发送组队状态信息,所述组队状态信息为当前最新的组队状态信息。
优选地,所述组队服务器560,还包括:第六接收模块606;
所述第六接收模块606,用于接收所述第一客户端520或者所述当前频道的管理员所在客户端发送的组队取消请求,所述第一客户端发送的组队取消请求为用户主动触发或者所述组队发起请求之后的预定时间段后自动触发的请求;
所述状态广播模块564,用于向所述当前频道中的所有客户端再次发送组队状态信息,所述组队状态信息包括卡位总数、卡位的内容类型、每个卡位与已入队客户端的标识之间的对应关系和入队要求中的全部四项内容或者前三项内容,所述对应关系为空。
优选地,所述频道移入模块568,还包括:完成接收单元568a和频道移入单元568b,如图7所示。
所述完成接收单元568a,用于在所有卡位都存在一个已入队客户端的标识与之对应后,接收所述当前频道的管理员所在客户端发送的组队完成信息;
所述频道移入单元568b,用于在所述完成接收单元568a接收到所述组队完成信息之后,将与各个卡位分别对应的已入队客户端移入同一子频道中来完成组队。
优选地,组队系统还可以包括频道服务器(未具体示出),所述组队服务器560利用频道服务器作为中转服务器接收所述当前频道中的各个客户端的请求;和/或,
所述组队服务器560利用频道服务器作为中转服务器以广播形式或者单播形式向所述当前频道中的各个客户端发送信息。
综上所述,本实施例提供的组队系统,通过接收第一客户端的组队发起请求,然后向当前频道内的所有客户端发送组队状态信息,然后接收当前频道内的第二客户端根据组队状态信息发送的组队加入请求;解决了其它客户端没有获知频道号码时,无法顺利组队的问题;达到了只要第一客户端在当前频道内发起了组队,第二客户端可以自由加入该组队从而完成组队过程的效果。还通过提供组队退出、踢出队员和取消组队等功能,可以使第一客户端更加自由地完成整个组队过程,并处理组队过程中可能出现的问题。还通过利用频道服务器作为中转服务器来双向传递请求或者信息,使得尽可能沿用团队语音工具的原有系统结构,与原有系统结构更好地兼容。
需要说明的是:上述实施例提供的组队系统在组队时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的组队系统与组队方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。