发明内容
本申请实施例提供一种通信链路建立方法、装置、设备及存储介质,以达到降低音视频直播会话通信链路建立过程耗时的目的。
第一方面,本申请实施例提供一种通信链路建立方法,包括:
接收第一客户端发送的会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息;
根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
接收到第二客户端返回的接受会话邀请的响应消息后,生成频道令牌;
向第一客户端发送第一频道令牌消息,该第一频道令牌消息中携带上述频道令牌,以便第一客户端根据该频道令牌与声网设备通信,通过目标频道请求从声网设备获取第二客户端的音视频数据,其中,目标频道用于第一客户端与第二客户端进行音视频会话;
向第二客户端发送第二频道令牌消息,该第二频道令牌消息中携带上述频道令牌,以便第二客户端根据该频道令牌与上述声网设备通信,通过目标频道从该声网设备请求获取第一客户端的音视频数据;
接收第一客户端发送的第一进入频道请求消息,并向第一客户端返回该第一进入频道请求消息的响应消息,其中,该第一进入频道请求消息是第一客户端在接收到第一频道令牌消息后发送的,用于请求进入目标频道,该第一进入频道请求消息的响应消息用于指示第一客户端的进入频道请求是否成功;
接收第二客户端发送的第二进入频道请求消息,并向第二客户端返回该第二进入频道请求消息的响应消息,其中,该第二进入频道请求消息是第二客户端在接收到第二频道令牌消息后发送的,用于请求进入目标频道,该第二进入频道请求消息的响应消息用于指示第二客户端的进入频道请求是否成功;
若第一客户端和第二客户端的进入频道请求均成功,记录第一通信链路状态,第一通信链路状态表示第一客户端与第二客户端之间的通信链路建立成功。
本申请实施例提供的上述方法在服务端实现,服务端在接收到第二客户端返回的接受会话邀请的响应消息后生成频道令牌并分别发送给第一客户端和第二客户端,第一客户端和第二客户端在接收到该频道令牌后即可向服务端请求进入目标频道,而不需要在第一客户端完成频道进入后再触发第二客户端进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
可选的,上述第一频道令牌消息为上述会话邀请请求消息的响应消息。
本申请实施例提供的方法,通过会话邀请请求消息的响应消息携带频道令牌,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
可选的,上述第二频道令牌消息为上述接受会话邀请的响应消息的响应消息。
如上所述,第二客户端不需要等待第一客户端进入目标频道完成后再进入目标频道,而是可以和第一客户端同时请求进入目标频道,那么,就可以提前到通过接受会话邀请的响应消息的响应消息携带频道令牌,以便第二客户端在接收到该响应消息后即可发出第二进入频道请求消息,进一步缩短通信链路建立时延。
在上述任意方法实施例的基础上,还可以在接收到以下至少一个消息后,记录第二通信链路状态:第一客户端发送的第一退出频道消息,第二客户端发送的第二退出频道消息。其中,该第二通信链路状态表示第一客户端与第二客户端之间的通信链路断开。
若第一客户端或第二客户端在与声网设备通信过程中出现通信异常,或者第一客户端或第二客户端主动断开通信链路,则会向服务端发送退出频道消息(第一退出频道消息或第二退出频道消息),这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保本端记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
第二方面,本申请实施例提供一种通信链路建立方法,包括:
接收服务端发送的会话邀请消息,该会话邀请消息是服务端在接收到第一客户端发送的会话邀请请求消息后发送的;
向服务端发送接受会话邀请的响应消息;
接收服务端发送的第二频道令牌消息,该第二频道令牌消息中携带频道令牌;
向服务端发送第二进入频道请求消息,第二进入频道请求消息用于请求进入目标频道,该目标频道用于第一客户端与本客户端进行音视频会话;
若接收到服务端返回的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据上述频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过上述目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第一客户端的音视频数据。
本申请实施例提供的上述方法在接收会话邀请的第二客户端上实现,第二客户端在向服务端发送接受会话邀请的响应消息后,会接收到频道令牌。之后,第二客户端向服务端请求进入目标频道,而不需要等到第一客户端完成目标频道进入后才请求进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
可选的,第二客户端与上述声网设备的通信采用实时通信技术实现,而不是采用传统的即时通信技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
在上述第二方面的任意方法实施例的基础上,第二客户端若收到上述声网设备返回的第一获取成功响应消息,可以确定第一客户端已进入目标频道。其中,该第一获取成功响应消息用于指示获取第一客户端的音视频数据的请求成功。
本申请实施例提供的方法,第二客户端可以通过声网设备返回的第一获取成功响应消息确认第一客户端是否已经进入目标频道,从而在确保第一客户端与本客户端均已进入目标频道后触发与第一客户端的交互功能。尽量避免或尽早发现第一客户端的异常,从而可以尽量避免由于第一客户端异常导致的音视频会话异常。
在上述第二方面的任意方法实施例的基础上,若与上述声网设备通信异常,可以向服务端发送第二退出频道消息,以便服务端记录第二通信链路状态,该第二通信链路状态表示第一客户端与本客户端之间的通信链路断开。
若本客户端在与声网设备通信过程中出现通信异常,或者本客户端主动断开通信链路,则会向服务端发送第二退出频道消息,这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保其记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
在上述第二方面的任意方法实施例的基础上,第二客户端还可以在第二预定时刻开启第二定时器,若第二定时器超时时仍未收到第二频道令牌消息,确定与第一客户端的通信链路创建失败。其中,第二预定时刻可以是以下任意时刻:在向服务端发送接受会话邀请的响应消息的同时,在向服务端发送接受会话邀请的响应消息之前的预定时刻,在向服务端发送接受会话邀请的响应消息之后的预定时刻。
通过设置第二定时器,可以避免长时间等待第二频道令牌消息导致通信链路时延较长。
在上述第二方面的任意方法实施例的基础上,若接收到服务端发送的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端进入频道请求失败,第二客户端可以确定与第一客户端的通信链路创建失败。
第三方面,本申请实施例提供一种通信链路建立方法,包括:
向服务端发送会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息,以便服务端根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
接收服务端发送的第一频道令牌消息,该第一频道令牌消息为上述会话邀请请求消息的响应消息,其中携带频道令牌;
向服务端发送第一进入频道请求消息,第一进入频道消息用于请求进入目标频道,目标频道用于本客户端与第二客户端进行音视频会话;
若接收到服务端返回的上述第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第二客户端的音视频数据。
本申请实施例提供的上述方法在发起会话邀请的第一客户端上实现,第一客户端通过会话邀请请求消息的响应消息中携带的频道令牌与声网设备通信,且在接收到该响应消息后发送第一进入频道请求消息,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
可选的,第一客户端与上述声网设备的通信采用实时通信技术实现,而不是采用传统的即时通信技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
在上述第三方面的任意方法实施例的基础上,第一客户端若收到上述声网设备返回的第二获取成功响应消息,确定第二客户端已进入目标频道。其中,第二获取成功响应消息用于指示获取第二客户端的音视频数据的请求成功。
本申请实施例提供的方法,第一客户端可以通过声网设备返回的第二获取成功响应消息确认第二客户端是否已经进入目标频道,从而可以在确保第二客户端与本客户端均已进入目标频道后触发与第二客户端的交互功能。尽量避免或尽早发现第二客户端的异常,从而可以尽量避免由于第二客户端异常导致的音视频会话异常。
在上述第三方面的任意方法实施例的基础上,若与上述声网设备通信异常,向服务端发送第一退出频道消息,以便服务端记录第二通信链路状态,第二通信链路状态表示本客户端与第二客户端之间的通信链路断开。
若本客户端在与声网设备通信过程中出现通信异常,或者本客户端主动断开通信链路,则会向服务端发送第一退出频道消息,这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保其记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
在上述第三方面的任意方法实施例的基础上,第一客户端还可以在第一预定时刻开启第一定时器,若第一定时器超时时仍未收到上述第一频道令牌消息,确定与第二客户端的通信链路创建失败。其中,第一预定时刻可以为以下任意时刻:在向服务端发送会话邀请请求消息的同时,在向服务端发送会话邀请请求消息之前的预定时刻,在向服务端发送会话邀请请求消息之后的预定时刻。
通过设置第一定时器,可以避免长时间等待第一频道令牌消息导致通信链路时延较长。
在上述第三方面的任意方法实施例的基础上,若接收到服务端发送的第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端进入频道请求失败,第一客户端可以确定与第二客户端的通信链路创建失败。
第四方面,本申请实施例提供一种通信链路建立装置,包括:
会话邀请请求消息接收模块,用于接收第一客户端发送的会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息;
会话邀请消息发送模块,用于根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
频道令牌生成模块,用于接收到第二客户端返回的接受会话邀请的响应消息后,生成频道令牌;
第一频道令牌消息发送模块,用于向第一客户端发送第一频道令牌消息,该第一频道令牌消息中携带上述频道令牌,以便第一客户端根据该频道令牌与声网设备通信,通过目标频道请求从声网设备获取第二客户端的音视频数据,其中,目标频道用于第一客户端与第二客户端进行音视频会话;
第二频道令牌消息发送模块,用于向第二客户端发送第二频道令牌消息,该第二频道令牌消息中携带上述频道令牌,以便第二客户端根据该频道令牌与上述声网设备通信,通过目标频道从该声网设备请求获取第一客户端的音视频数据;
第一频道进入请求响应模块,用于接收第一客户端发送的第一进入频道请求消息,并向第一客户端返回该第一进入频道请求消息的响应消息,其中,该第一进入频道请求消息是第一客户端在接收到第一频道令牌消息后发送的,用于请求进入目标频道,该第一进入频道请求消息的响应消息用于指示第一客户端的进入频道请求是否成功;
第二频道进入请求响应模块,用于接收第二客户端发送的第二进入频道请求消息,并向第二客户端返回该第二进入频道请求消息的响应消息,其中,该第二进入频道请求消息是第二客户端在接收到第二频道令牌消息后发送的,用于请求进入目标频道,该第二进入频道请求消息的响应消息用于指示第二客户端的进入频道请求是否成功;
通信链路状态记录模块,用于若第一客户端和第二客户端的进入频道请求均成功,记录第一通信链路状态,第一通信链路状态表示第一客户端与第二客户端之间的通信链路建立成功。
本申请实施例提供的上述装置在服务端实现,服务端在接收到第二客户端返回的接受会话邀请的响应消息后生成频道令牌并分别发送给第一客户端和第二客户端,第一客户端和第二客户端在接收到该频道令牌后即可向服务端请求进入目标频道,而不需要在第一客户端完成频道进入后再触发第二客户端进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
可选的,上述第一频道令牌消息为上述会话邀请请求消息的响应消息。
本申请实施例提供的装置,通过会话邀请请求消息的响应消息携带频道令牌,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
可选的,上述第二频道令牌消息为上述接受会话邀请的响应消息的响应消息。
如上所述,第二客户端不需要等待第一客户端进入目标频道完成后再进入目标频道,而是可以和第一客户端同时请求进入目标频道,那么,就可以提前到通过接受会话邀请的响应消息的响应消息携带频道令牌,以便第二客户端在接收到该响应消息后即可发出第二进入频道请求消息,进一步缩短通信链路建立时延。
在上述任意装置实施例的基础上,上述通信链路状态记录模块还可以在接收到以下至少一个消息后,记录第二通信链路状态:第一客户端发送的第一退出频道消息,第二客户端发送的第二退出频道消息。其中,该第二通信链路状态表示第一客户端与第二客户端之间的通信链路断开。
若第一客户端或第二客户端在与声网设备通信过程中出现通信异常,或者第一客户端或第二客户端主动断开通信链路,则会向服务端发送退出频道消息(第一退出频道消息或第二退出频道消息),这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保本端记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
第五方面,本申请实施例提供一种通信链路建立装置,包括:
会话邀请消息接收模块,用于接收服务端发送的会话邀请消息,该会话邀请消息是服务端在接收到第一客户端发送的会话邀请请求消息后发送的;
第一响应消息发送模块,用于向服务端发送接受会话邀请的响应消息;
第二频道令牌消息接收模块,用于接收服务端发送的第二频道令牌消息,该第二频道令牌消息中携带频道令牌;
第二进入频道请求消息发送模块,用于向服务端发送第二进入频道请求消息,第二进入频道请求消息用于请求进入目标频道,该目标频道用于第一客户端与本客户端进行音视频会话;
第一声网设备通信模块,用于若接收到服务端返回的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据上述频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过上述目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第一客户端的音视频数据。
本申请实施例提供的上述装置在接收会话邀请的第二客户端上实现,第二客户端在向服务端发送接受会话邀请的响应消息后,会接收到频道令牌。之后,第二客户端向服务端请求进入目标频道,而不需要等到第一客户端完成目标频道进入后才请求进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
可选的,第二客户端与上述声网设备的通信采用实时通信技术实现,而不是采用传统的即时通信技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
在上述第五方面的任意装置实施例的基础上,第一声网设备通信模块若收到上述声网设备返回的第一获取成功响应消息,可以确定第一客户端已进入目标频道。其中,该第一获取成功响应消息用于指示获取第一客户端的音视频数据的请求成功。
本申请实施例提供的装置,可以通过声网设备返回的第一获取成功响应消息确认第一客户端是否已经进入目标频道,从而在确保第一客户端与本客户端均已进入目标频道后触发与第一客户端的交互功能。尽量避免或尽早发现第一客户端的异常,从而可以尽量避免由于第一客户端异常导致的音视频会话异常。
在上述第五方面的任意装置实施例的基础上,该装置还可以包括第二退出频道消息发送模块,用于若与上述声网设备通信异常,向服务端发送第二退出频道消息,以便服务端记录第二通信链路状态,该第二通信链路状态表示第一客户端与本客户端之间的通信链路断开。
若本客户端在与声网设备通信过程中出现通信异常,或者本客户端主动断开通信链路,则会向服务端发送第二退出频道消息,这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保其记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
在上述第五方面的任意装置实施例的基础上,还可以包括第一计时模块,用于在第二预定时刻开启第二定时器,若第二定时器超时时仍未收到第二频道令牌消息,确定与第一客户端的通信链路创建失败。其中,第二预定时刻可以是以下任意时刻:在向服务端发送接受会话邀请的响应消息的同时,在向服务端发送接受会话邀请的响应消息之前的预定时刻,在向服务端发送接受会话邀请的响应消息之后的预定时刻。
通过设置第二定时器,可以避免长时间等待第二频道令牌消息导致通信链路时延较长。
在上述第五方面的任意装置实施例的基础上,第一声网设备通信模块若接收到服务端发送的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端进入频道请求失败,第二客户端可以确定与第一客户端的通信链路创建失败。
第六方面,本申请实施例提供一种通信链路建立装置,包括:
会话邀请请求消息发送模块,用于向服务端发送会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息,以便服务端根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
第一频道令牌消息接收模块,用于接收服务端发送的第一频道令牌消息,该第一频道令牌消息为上述会话邀请请求消息的响应消息,其中携带频道令牌;
第一进入频道请求消息发送模块,用于向服务端发送第一进入频道请求消息,第一进入频道消息用于请求进入目标频道,目标频道用于本客户端与第二客户端进行音视频会话;
第二声网设备通信模块,用于若接收到服务端返回的上述第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第二客户端的音视频数据。
本申请实施例提供的上述装置在发起会话邀请的第一客户端上实现,第一客户端通过会话邀请请求消息的响应消息中携带的频道令牌与声网设备通信,且在接收到该响应消息后发送第一进入频道请求消息,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
可选的,第一客户端与上述声网设备的通信采用实时通信技术实现,而不是采用传统的即时通信技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
在上述第六方面的任意装置实施例的基础上,第二声网设备通信模块若收到上述声网设备返回的第二获取成功响应消息,确定第二客户端已进入目标频道。其中,第二获取成功响应消息用于指示获取第二客户端的音视频数据的请求成功。
本申请实施例提供的装置,可以通过声网设备返回的第二获取成功响应消息确认第二客户端是否已经进入目标频道,从而可以在确保第二客户端与本客户端均已进入目标频道后触发与第二客户端的交互功能。尽量避免或尽早发现第二客户端的异常,从而可以尽量避免由于第二客户端异常导致的音视频会话异常。
在上述第六方面的任意装置实施例的基础上,该装置还可以包括第一退出频道消息发送模块,用于若与上述声网设备通信异常,向服务端发送第一退出频道消息,以便服务端记录第二通信链路状态,第二通信链路状态表示本客户端与第二客户端之间的通信链路断开。
若本客户端在与声网设备通信过程中出现通信异常,或者本客户端主动断开通信链路,则会向服务端发送第一退出频道消息,这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保其记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
在上述第六方面的任意装置实施例的基础上,该装置还可以包括第二计时模块,用于在第一预定时刻开启第一定时器,若第一定时器超时时仍未收到上述第一频道令牌消息,确定与第二客户端的通信链路创建失败。其中,第一预定时刻可以为以下任意时刻:在向服务端发送会话邀请请求消息的同时,在向服务端发送会话邀请请求消息之前的预定时刻,在向服务端发送会话邀请请求消息之后的预定时刻。
通过设置第一定时器,可以避免长时间等待第一频道令牌消息导致通信链路时延较长。
在上述第六方面的任意装置实施例的基础上,第二声网设备通信模块若接收到服务端发送的第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端进入频道请求失败,第一客户端可以确定与第二客户端的通信链路创建失败。
第七方面,本申请实施例提供一种服务端设备,包括处理器和存储器;
存储器用于存储执行上述第一方面任意实施例所述方法的程序;
处理器被配置为执行该存储器中存储的程序。
本申请实施例提供的服务端设备,在接收到第二客户端返回的接受会话邀请的响应消息后生成频道令牌并分别发送给第一客户端和第二客户端,第一客户端和第二客户端在接收到该频道令牌后即可向服务端请求进入目标频道,而不需要在第一客户端完成频道进入后再触发第二客户端进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
第八方面,本申请实施例提供一种客户端设备,包括处理器和存储器;
存储器用于存储执行上述第二方面任意实施例所述方法的程序;
处理器被配置为执行上述存储器中存储的程序。
本申请实施例提供的上述客户端设备作为会话邀请的接收方,在向服务端发送接受会话邀请的响应消息后,会接收到频道令牌。之后,向服务端请求进入目标频道,而不需要等到第一客户端完成目标频道进入后才请求进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
第九方面,本申请实施例提供一种客户端设备,包括处理器和存储器;
存储器用于存储执行上述第三方面任意实施例所述方法的程序;
处理器被配置为执行上述存储器中存储的程序。
本申请实施例提供的客户端设备作为会话邀请的发起方,通过会话邀请请求消息的响应消息中携带的频道令牌与声网设备通信,且在接收到该响应消息后发送第一进入频道请求消息,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
第十方面,本申请实施例提供一种计算机可读存储介质,存储有执行上述第一至第三方面任意实施例所述方法的程序。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请实施例的技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请实施例技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本申请实施例提供一种音视频直播会话通信链路的创建方法,该方法较之以往方法降低了通信链路创建时延,简化了通信链路创建流程。下面将以客户端与服务端配合实现的角度对本申请实施例提供的方法进行描述,单个客户端以及服务端各自单独的实现过程可以参照以下相互配合实现的实施例进行说明,将不再单独赘述。
如图1所示,本申请实施例提供的通信链路建立方法包括如下步骤:
步骤101、第一客户端向服务端发送会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息。
本申请实施例中,第一客户端和第二客户端是指移动终端上用于实现音视频直播的应用程序,服务端是指网络侧的业务服务器。
其中,第二客户端的标识信息可以包括登录第二客户端的账户的信息,例如账户名,账户绑定的邮箱、手机号码、身份信息等等,第二客户端的标识信息还可以包括登录第二客户端的移动终端的标识信息,例如该移动终端的设备标识码等等。
其中,登录第二客户端的移动终端可以简称为第二客户端设备,相应的,登录第一客户端的移动终端可以简称为第一客户端设备。
步骤102、服务端接收到第一客户端发送的会话邀请请求消息后,根据其中的第二客户端的标识信息,向第二客户端发送会话邀请消息。
其中,服务端可以根据第二客户端的标识信息查找到第二客户端设备,进而向第二客户端设备发送会话邀请消息,因此,向第二客户端设备发送会话邀请消息,具体是向第二客户端设备发送会话邀请消息。
步骤103、第二客户端向服务端发送接受会话邀请的响应消息。
若第二客户端向服务器发送不接受会话邀请的响应消息,那么服务端向第一客户端设备返回会话邀请请求消息的响应消息,通过该响应消息指示第二客户端不接受会话邀请,本次通信链路创建过程结束。
步骤104、服务端接收到第二客户端返回的接受会话邀请的响应消息后,生成频道令牌。
其中,频道令牌可以是访问令牌(AccessToken)。
服务端可利用现有实现方式生成该频道令牌,本申请对其实现方式不做限定。
步骤105、服务端向第一客户端发送第一频道令牌消息,该第一频道令牌消息中携带上述频道令牌。
步骤106、第一客户端接收到服务端发送的第一频道令牌消息后,向服务端发送第一进入频道请求消息。
其中,第一进入频道消息用于请求进入目标频道,目标频道用于本客户端与第二客户端进行音视频会话。
本申请实施例中,频道又称通道(Channel)、房间,是为两个客户端之间进行音视频直播会话所分配的通信资源。
步骤107、服务端接收第一客户端发送的第一进入频道请求消息,并向第一客户端发送第一进入频道请求消息的响应消息。
其中,第一进入频道请求消息的响应消息用于指示第一客户端的进入频道请求是否成功。
进一步地,服务端在接收到第一进入频道请求消息后会对第一客户端的进入目标频道请求进行处理,以决定该第一客户端进入目标频道的请求是否成功。其具体实现方式可以参照现有实现方式进行,此处不做赘述。
步骤108、若第一客户端接收到服务端返回的上述第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据频道令牌与声网设备通信。
如图2所示,第一客户端与该声网设备的通信至少包括以下步骤:
步骤201、第一客户端将频道令牌发送给声网设备,以进行令牌验证。
其中,声网设备可以但不仅限于是合流服务器。令牌验证的实现方式可以参照现有实现方式,此处不做赘述。
步骤202、令牌验证通过后,第一客户端通过目标频道向声网设备请求发送本客户端的音视频数据。
向声网设备请求发送本客户端的音视频数据,即向声网设备请求推流。
步骤203、第一客户端通过目标频道向声网设备请求获取第二客户端的音视频数据。
向声网设备请求获取第二客户端的音视频数据,即向声网设备请求拉流。更进一步地,第一客户端向声网设备实际请求的可以是合流,合流数据中包括第二客户端的音视频数据,合流数据中也包括第一客户端的音视频数据。
实际应用中,可以单纯进行音频直播会话,也可以单纯进行视频直播会话,还可以进行音频以及视频直播会话。因此,本申请实施例中的音视频数据仅为音频数据,也可以仅为视频数据,还可以为音频和视频数据。
若上述第一进入频道请求消息的响应消息指示本客户端的进入频道请求失败,或者在预定等待时间结束后仍然未接收到该第一进入频道请求消息的响应消息,则本次通信链路建立流程结束。
步骤109、服务端向第二客户端发送第二频道令牌消息,该第二频道令牌消息中携带上述频道令牌。
本申请实施例不对步骤105和步骤109的时序进行限定,换言之,二者没有时序限制。
步骤110、第二客户端接收到服务端发送的第二频道令牌消息后,向服务端发送第二进入频道请求消息。
其中,第二进入频道请求消息用于请求进入目标频道。
本申请实施例中,第一进入频道请求消息与第二进入频道请求消息的消息格式可以相同也可以不同。
步骤111、服务端接收第二客户端发送的第二进入频道请求消息,并向第二客户端发送第二进入频道请求消息的响应消息。
其中,第二进入频道请求消息的响应消息用于指示第二客户端的进入频道请求是否成功。
进一步地,服务端在接收到第二进入频道请求消息后会对第二客户端的进入目标频道请求进行处理,以决定该第二客户端进入目标频道的请求是否成功。其具体实现方式可以参照现有实现方式进行,此处不做赘述。
步骤112、若第二客户端接收到服务端返回的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据上述频道令牌与声网设备通信。
其中,第二客户端与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过上述目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第一客户端的音视频数据。其具体实现方式可以参照上述第一客户端与声网设备的通信过程说明,此处不再赘述。
若上述第一进入频道请求消息的响应消息指示本客户端的进入频道请求失败,或者在预定等待时间结束后仍然未接收到该第一进入频道请求消息的响应消息,则本次通信链路建立流程结束。
步骤113、若第一客户端和第二客户端的进入频道请求均成功,服务端记录第一通信链路状态。
其中,第一通信链路状态表示第一客户端与第二客户端之间的通信链路建立成功,即第一客户端与第二客户端均已经进入目标频道。
本申请实施例提供的上述方法,服务端在接收到第二客户端返回的接受会话邀请的响应消息后生成频道令牌并分别发送给第一客户端和第二客户端,第一客户端和第二客户端在接收到该频道令牌后即可向服务端请求进入目标频道,而不需要在第一客户端完成频道进入后再触发第二客户端进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
可选的,上述第一频道令牌消息为上述会话邀请请求消息的响应消息。
本申请实施例提供的方法,通过会话邀请请求消息的响应消息携带频道令牌,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
可选的,上述第二频道令牌消息为上述接受会话邀请的响应消息的响应消息。
如上所述,第二客户端不需要等待第一客户端进入目标频道完成后再进入目标频道,而是可以和第一客户端同时请求进入目标频道,那么,就可以提前到通过接受会话邀请的响应消息的响应消息携带频道令牌,以便第二客户端在接收到该响应消息后即可发出第二进入频道请求消息,进一步缩短通信链路建立时延。
其中,第一客户端与第二客户端同时请求进入目标频道,并不是指二者严格在同一时刻请求进入目标频道,而是指二者之间不存在时序限制。
可选的,第一客户端与上述声网设备的通信采用实时通信(RTC,Real-timeCommunications)技术实现,而不是采用传统的即时通信(IM,Instant Messaging)技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
可选的,第二客户端与上述声网设备的通信采用实时通信技术实现,而不是采用传统的即时通信技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
在上述任意方法实施例的基础上,服务端还可以在接收到以下至少一个消息后,记录第二通信链路状态:第一客户端发送的第一退出频道消息,第二客户端发送的第二退出频道消息。其中,该第二通信链路状态表示第一客户端与第二客户端之间的通信链路断开。
相应的,若第一客户端与上述声网设备通信异常,可以向服务端发送第一退出频道消息。其中,第一客户端与声网设备的通信异常的情况有多种,例如,令牌验证未通过,发送本客户端的音视频数据的请求未成功,获取第二客户端的音视频数据的请求未成功等等。
若第一客户端接收到指示断开通信链路的触发指令,也可以向服务端发送第一退出频道消息。
相应的,若第二客户端与上述声网设备通信异常,可以向服务端发送第二退出频道消息。其中,第二客户端与声网设备的通信异常的情况有多种,例如,令牌验证未通过,发送本客户端的音视频数据的请求未成功,获取第一客户端的音视频数据的请求未成功等等。
若第二客户端接收到指示断开通信链路的触发指令,也可以向服务端发送第一退出频道消息。
若第一客户端或第二客户端在与声网设备通信过程中出现通信异常,或者第一客户端或第二客户端主动断开通信链路,则会向服务端发送退出频道消息(第一退出频道消息或第二退出频道消息),这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保本端记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
在上述任意方法实施例的基础上,若第二客户端接收到服务端发送的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端进入频道请求失败,第二客户端可以确定与第一客户端的通信链路创建失败。
本申请实施例不对第二客户端确定与第一客户端的通信链路创建失败的具体表现方式进行限定。作为举例而非限定,一种实现方式中,第二客户端通过再次向服务端发送第二进入频道请求消息的方式确定与第一客户端的通信链路创建失败,重复发送该消息的次数不超过预定次数。另一种实现方式中,第二客户端通过人机交互界面向用户告知通信链路建立失败的方式确定与第一客户端的通信链路创建失败。
在上述任意方法实施例的基础上,若第一客户端接收到服务端发送的第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端进入频道请求失败,第一客户端可以确定与第二客户端的通信链路创建失败。
本申请实施例不对第一客户端确定与第二客户端的通信链路创建失败的具体表现方式进行限定。作为举例而非限定,一种实现方式中,第一客户端通过再次向服务端发送第一进入频道请求消息的方式确定与第二客户端的通信链路创建失败,重复发送该消息的次数不超过预定次数。另一种实现方式中,第一客户端通过人机交互界面向用户告知通信链路建立失败的方式确定与第二客户端的通信链路创建失败。
在上述任意方法实施例的基础上,第二客户端若收到上述声网设备返回的第一获取成功响应消息,可以确定第一客户端已进入目标频道。其中,该第一获取成功响应消息用于指示获取第一客户端的音视频数据的请求成功。
也就是说,第二客户端可以通过回调(拉流)成功来确认第一客户端已进入目标频道,而不需要根据服务端的反馈进行此项确认。
本申请实施例不对第二客户端确定第一客户端已进入目标频道的具体表现形式进行限定。一种实现方式中,第二客户端若收到上述声网设备返回的第一获取成功响应消息,则向服务端发送互动请求消息,该互动请求消息用于请求与第一客户端通过建立的通信链路进行指定的互动,例如向服务端发送battle_open(对决开始)消息,请求与第一客户端进行PK(PlayerKilling)。那么,向服务端发送互动请求消息的行为即确定第一客户端已进入目标频道。另一种实现方式中,第二客户端若收到上述声网设备返回的第一获取成功响应消息,则记录第一客户端已进入目标频道的状态信息。那么,记录该状态信息的行为即确定第一客户端已进入目标频道。
本申请实施例提供的方法,第二客户端可以通过声网设备返回的第一获取成功响应消息确认第一客户端是否已经进入目标频道,从而在确保第一客户端与本客户端均已进入目标频道后触发与第一客户端的交互功能。尽量避免或尽早发现第一客户端的异常,从而可以尽量避免由于第一客户端异常导致的音视频会话异常。
在上述任意方法实施例的基础上,第一客户端若收到上述声网设备返回的第二获取成功响应消息,可以确定第二客户端已进入目标频道。其中,该第二获取成功响应消息用于指示获取第二客户端的音视频数据的请求成功。
也就是说,第一客户端可以通过回调(拉流)成功来确认第二客户端已进入目标频道,而不需要根据服务端的反馈进行此项确认。
本申请实施例不对第一客户端确定第二客户端已进入目标频道的具体表现形式进行限定。一种实现方式中,第一客户端若收到上述声网设备返回的第二获取成功响应消息,则向服务端发送互动请求消息,该互动请求消息用于请求与第二客户端通过建立的通信链路进行指定的互动,例如向服务端发送battle_open(对决开始)消息,请求与第二客户端进行PK(PlayerKilling)。那么,向服务端发送互动请求消息的行为即确定第二客户端已进入目标频道。另一种实现方式中,第一客户端若收到上述声网设备返回的第二获取成功响应消息,则记录第二客户端已进入目标频道的状态信息。那么,记录该状态信息的行为即确定第二客户端已进入目标频道。
本申请实施例提供的方法,第一客户端可以通过声网设备返回的第二获取成功响应消息确认第二客户端是否已经进入目标频道,从而可以在确保第二客户端与本客户端均已进入目标频道后触发与第二客户端的交互功能。尽量避免或尽早发现第二客户端的异常,从而可以尽量避免由于第二客户端异常导致的音视频会话异常。
本申请实施例提供的方式,不限定第一客户端与第二客户端进入目标频道的顺序,且二者均可以通过回调响应确认对方是否已进入目标频道。那么,可以由二者其中的任一客户端来触发后续的互动流程。实际应用中,可以预先约定触发后续互动流程的客户端,例如约定由第二客户端触发后续的互动流程。
在上述任意方法实施例的基础上,第二客户端还可以在第二预定时刻开启第二定时器,若第二定时器超时时仍未收到第二频道令牌消息,确定与第一客户端的通信链路创建失败。其中,第二预定时刻可以是以下任意时刻:在向服务端发送接受会话邀请的响应消息的同时,在向服务端发送接受会话邀请的响应消息之前的预定时刻,在向服务端发送接受会话邀请的响应消息之后的预定时刻。
本申请实施例不对第二客户端确定与第一客户端的通信链路创建失败的具体表现方式进行限定。作为举例而非限定,一种实现方式中,第二客户端通过再次向服务端发发起接受会话邀请的响应消息的方式确定与第一客户端的通信链路创建失败,重复发起该消息的次数不超过预定次数。另一种实现方式中,第二客户端通过人机交互界面向用户告知通信链路建立失败的方式确定与第一客户端的通信链路创建失败。
通过设置第二定时器,可以避免长时间等待第二频道令牌消息导致通信链路时延较长。
在上述任意方法实施例的基础上,第一客户端还可以在第一预定时刻开启第一定时器,若第一定时器超时时仍未收到上述第一频道令牌消息,确定与第二客户端的通信链路创建失败。其中,第一预定时刻可以为以下任意时刻:在向服务端发送会话邀请请求消息的同时,在向服务端发送会话邀请请求消息之前的预定时刻,在向服务端发送会话邀请请求消息之后的预定时刻。
本申请实施例不对第一客户端确定与第二客户端的通信链路创建失败的具体表现方式进行限定。作为举例而非限定,一种实现方式中,第一客户端通过再次向服务端发送接受会话邀请的响应消息的方式确定与第二客户端的通信链路创建失败,重复发送该消息的次数不超过预定次数。另一种实现方式中,第一客户端通过人机交互界面向用户告知通信链路建立失败的方式确定与第二客户端的通信链路创建失败。
通过设置第一定时器,可以避免长时间等待第一频道令牌消息导致通信链路时延较长。
如图3所示,本发明实施例提供的服务端侧的通信链路建立方法包括:
步骤301、接收第一客户端发送的会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息;
步骤302、根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
步骤303、接收到第二客户端返回的接受会话邀请的响应消息后,生成频道令牌;
步骤304、向第一客户端发送第一频道令牌消息,该第一频道令牌消息中携带上述频道令牌,以便第一客户端根据该频道令牌与声网设备通信,通过目标频道请求从声网设备获取第二客户端的音视频数据,其中,目标频道用于第一客户端与第二客户端进行音视频会话;
步骤305、向第二客户端发送第二频道令牌消息,该第二频道令牌消息中携带上述频道令牌,以便第二客户端根据该频道令牌与上述声网设备通信,通过目标频道从该声网设备请求获取第一客户端的音视频数据;
步骤306、接收第一客户端发送的第一进入频道请求消息,并向第一客户端返回该第一进入频道请求消息的响应消息,其中,该第一进入频道请求消息是第一客户端在接收到第一频道令牌消息后发送的,用于请求进入目标频道,该第一进入频道请求消息的响应消息用于指示第一客户端的进入频道请求是否成功;
步骤307、接收第二客户端发送的第二进入频道请求消息,并向第二客户端返回该第二进入频道请求消息的响应消息,其中,该第二进入频道请求消息是第二客户端在接收到第二频道令牌消息后发送的,用于请求进入目标频道,该第二进入频道请求消息的响应消息用于指示第二客户端的进入频道请求是否成功;
步骤308、若第一客户端和第二客户端的进入频道请求均成功,记录第一通信链路状态,第一通信链路状态表示第一客户端与第二客户端之间的通信链路建立成功。
本申请实施例提供的上述方法在服务端实现,服务端在接收到第二客户端返回的接受会话邀请的响应消息后生成频道令牌并分别发送给第一客户端和第二客户端,第一客户端和第二客户端在接收到该频道令牌后即可向服务端请求进入目标频道,而不需要在第一客户端完成频道进入后再触发第二客户端进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
其具体实现方式可以参照前述实施例的描述,此处不再赘述。
如图4所示,本发明实施例提供的第二客户端侧的通信链路建立方法包括:
步骤401、接收服务端发送的会话邀请消息,该会话邀请消息是服务端在接收到第一客户端发送的会话邀请请求消息后发送的;
步骤402、向服务端发送接受会话邀请的响应消息;
步骤403、接收服务端发送的第二频道令牌消息,该第二频道令牌消息中携带频道令牌;
步骤404、向服务端发送第二进入频道请求消息,第二进入频道请求消息用于请求进入目标频道,该目标频道用于第一客户端与本客户端进行音视频会话;
步骤405、若接收到服务端返回的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据上述频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过上述目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第一客户端的音视频数据。
其具体实现方式可以参照前述实施例的描述,此处不再赘述。
如图5所示,本发明实施例提供的第一客户端侧的通信链路建立方法包括:
步骤501、向服务端发送会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息,以便服务端根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
步骤502、接收服务端发送的第一频道令牌消息,该第一频道令牌消息为上述会话邀请请求消息的响应消息,其中携带频道令牌;
步骤503、向服务端发送第一进入频道请求消息,第一进入频道消息用于请求进入目标频道,目标频道用于本客户端与第二客户端进行音视频会话;
步骤504、若接收到服务端返回的上述第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第二客户端的音视频数据。
其具体实现方式可以参照前述实施例的描述,此处不再赘述。
下面以主播A与主播B之间进行连麦PK的场景为例,对主播A的第一客户端与主播B的第二客户端之间建立通信链路的实现过程进行详细说明。
主播A点击第一客户端界面上提供的PK按钮,第一客户端响应该点击事件,与服务端进行通信,从服务端获取好友列表并从好友列表中选择主播B,或者接受服务端通过随机匹配返回的主播B。如图6所示:
第一客户端向服务端发送会话邀请(invite)请求消息,并启动第一定时器,该定时器的计时时长为12秒,该会话邀请请求消息为RPC(Remote Procedure Call,远程过程调用)Request(请求)消息,其中携带第二客户端的标识信息;
服务端根据第二客户端的标识信息,向第二客户端发送会话邀请(invite)消息,该会话邀请消息为信令消息;
第二客户端向服务端返回接受会话邀请的响应消息(replay),并启动第二定时器,该第二定时器的计时时长为10秒,该接受会话邀请的响应消息为RPC请求消息;
服务端在接收到上述接受会话邀请的响应消息后,计算访问令牌;
服务端向第一客户端发送会话邀请请求消息的响应消息,在该响应消息中携带访问令牌,并向第二客户端发送接受会话邀请的响应消息的响应消息,该响应消息中携带访问令牌;其中,会话邀请请求消息的响应消息为信令消息,接受会话邀请的响应消息的响应消息为RPC response(响应)消息;
第一客户端在接收到访问令牌后,向服务端发送第一进入频道请求(join_channel)消息,该消息为RPC请求消息;
服务端向第一客户端返回第一进入频道请求消息的响应消息,指示进入频道请求成功,该消息为RPC响应消息;
第一客户端利用上述访问令牌与声网设备进行通信,即RTC过程。在RTC成功后,即可实现与第二客户端的连麦互动;
第二客户端在接收到访问令牌后,向服务端发送第二进入频道请求(join_channel)消息,该消息为RPC请求消息;
服务端向第二客户端返回第二进入频道请求消息的响应消息,指示进入频道请求成功,该消息为RPC响应消息;
第二客户端利用上述访问令牌与声网设备进行通信,即RTC过程;
在RTC成功后,第二客户端向服务器发送battle_open(对决开始)请求消息,该消息为RPC请求消息;
服务端记录第一通信链路状态信息。
其中,当第一客户端从服务端接收到指示请求成功的第一进入频道请求消息的响应消息,则在其界面上显示双屏,其中一个屏幕用于显示本客户端的视频画面,另一个屏幕用于显示第二客户端的视频画面。在拉流成功之前,用于显示第二客户端的视频画面的屏幕为黑屏状态,当黑屏状态的持续时间超过预定时间,第一客户端向服务器发送第一退出链路消息,并允许主播A重新发其连麦或PK。
其中,当第二客户端从服务端接收到指示请求成功的第二进入频道请求消息的响应消息,则在其界面上显示双屏,其中一个屏幕用于显示本客户端的视频画面,另一个屏幕用于显示第一客户端的视频画面。在拉流成功之前,用于显示第一客户端的视频画面的屏幕为黑屏状态,当黑屏状态的持续时间超过预定时间,第二客户端向服务器发送第二退出链路消息,并允许主播A重新发其连麦或PK。
当一方客户端退出连麦,则另一方客户端可以通过与声望设备的通信获知该状态,随即也会退出连麦。
其中,当第一定时器的计时时间超时,当前通信链路创建过程结束,第一客户端可以重新向第二客户端或其他客户端发起会话邀请。
其中,若第二客户端的RTC过程失败,则第二客户端退出连麦,第一客户端在黑屏持续时间超过预定时间后也退出连麦。
其中,若第一客户端的进入频道请求失败,则第一客户端退出连麦,随即第二客户端也退出连麦。
其中,若第二客户端的进入频道请求失败,则第二客户端退出连麦,随即第一客户端也退出连麦。
基于与服务端侧的方法同样的发明构思,本申请实施例提供一种通信链路建立装置,包括:
会话邀请请求消息接收模块,用于接收第一客户端发送的会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息;
会话邀请消息发送模块,用于根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
频道令牌生成模块,用于接收到第二客户端返回的接受会话邀请的响应消息后,生成频道令牌;
第一频道令牌消息发送模块,用于向第一客户端发送第一频道令牌消息,该第一频道令牌消息中携带上述频道令牌,以便第一客户端根据该频道令牌与声网设备通信,通过目标频道请求从声网设备获取第二客户端的音视频数据,其中,目标频道用于第一客户端与第二客户端进行音视频会话;
第二频道令牌消息发送模块,用于向第二客户端发送第二频道令牌消息,该第二频道令牌消息中携带上述频道令牌,以便第二客户端根据该频道令牌与上述声网设备通信,通过目标频道从该声网设备请求获取第一客户端的音视频数据;
第一频道进入请求响应模块,用于接收第一客户端发送的第一进入频道请求消息,并向第一客户端返回该第一进入频道请求消息的响应消息,其中,该第一进入频道请求消息是第一客户端在接收到第一频道令牌消息后发送的,用于请求进入目标频道,该第一进入频道请求消息的响应消息用于指示第一客户端的进入频道请求是否成功;
第二频道进入请求响应模块,用于接收第二客户端发送的第二进入频道请求消息,并向第二客户端返回该第二进入频道请求消息的响应消息,其中,该第二进入频道请求消息是第二客户端在接收到第二频道令牌消息后发送的,用于请求进入目标频道,该第二进入频道请求消息的响应消息用于指示第二客户端的进入频道请求是否成功;
通信链路状态记录模块,用于若第一客户端和第二客户端的进入频道请求均成功,记录第一通信链路状态,第一通信链路状态表示第一客户端与第二客户端之间的通信链路建立成功。
本申请实施例提供的上述装置在服务端实现,服务端在接收到第二客户端返回的接受会话邀请的响应消息后生成频道令牌并分别发送给第一客户端和第二客户端,第一客户端和第二客户端在接收到该频道令牌后即可向服务端请求进入目标频道,而不需要在第一客户端完成频道进入后再触发第二客户端进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
可选的,上述第一频道令牌消息为上述会话邀请请求消息的响应消息。
本申请实施例提供的装置,通过会话邀请请求消息的响应消息携带频道令牌,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
可选的,上述第二频道令牌消息为上述接受会话邀请的响应消息的响应消息。
如上所述,第二客户端不需要等待第一客户端进入目标频道完成后再进入目标频道,而是可以和第一客户端同时请求进入目标频道,那么,就可以提前到通过接受会话邀请的响应消息的响应消息携带频道令牌,以便第二客户端在接收到该响应消息后即可发出第二进入频道请求消息,进一步缩短通信链路建立时延。
在上述任意装置实施例的基础上,上述通信链路状态记录模块还可以在接收到以下至少一个消息后,记录第二通信链路状态:第一客户端发送的第一退出频道消息,第二客户端发送的第二退出频道消息。其中,该第二通信链路状态表示第一客户端与第二客户端之间的通信链路断开。
若第一客户端或第二客户端在与声网设备通信过程中出现通信异常,或者第一客户端或第二客户端主动断开通信链路,则会向服务端发送退出频道消息(第一退出频道消息或第二退出频道消息),这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保本端记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
基于与第二客户端侧的方法同样的发明构思,本申请实施例提供一种通信链路建立装置,包括:
会话邀请消息接收模块,用于接收服务端发送的会话邀请消息,该会话邀请消息是服务端在接收到第一客户端发送的会话邀请请求消息后发送的;
第一响应消息发送模块,用于向服务端发送接受会话邀请的响应消息;
第二频道令牌消息接收模块,用于接收服务端发送的第二频道令牌消息,该第二频道令牌消息中携带频道令牌;
第二进入频道请求消息发送模块,用于向服务端发送第二进入频道请求消息,第二进入频道请求消息用于请求进入目标频道,该目标频道用于第一客户端与本客户端进行音视频会话;
第一声网设备通信模块,用于若接收到服务端返回的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据上述频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过上述目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第一客户端的音视频数据。
本申请实施例提供的上述装置在接收会话邀请的第二客户端上实现,第二客户端在向服务端发送接受会话邀请的响应消息后,会接收到频道令牌。之后,第二客户端向服务端请求进入目标频道,而不需要等到第一客户端完成目标频道进入后才请求进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
可选的,第二客户端与上述声网设备的通信采用实时通信技术实现,而不是采用传统的即时通信技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
在上述任意第二客户端侧的装置实施例的基础上,第一声网设备通信模块若收到上述声网设备返回的第一获取成功响应消息,可以确定第一客户端已进入目标频道。其中,该第一获取成功响应消息用于指示获取第一客户端的音视频数据的请求成功。
本申请实施例提供的装置,可以通过声网设备返回的第一获取成功响应消息确认第一客户端是否已经进入目标频道,从而在确保第一客户端与本客户端均已进入目标频道后触发与第一客户端的交互功能。尽量避免或尽早发现第一客户端的异常,从而可以尽量避免由于第一客户端异常导致的音视频会话异常。
在上述任意第二客户端侧的装置实施例的基础上,该装置还可以包括第二退出频道消息发送模块,用于若与上述声网设备通信异常,向服务端发送第二退出频道消息,以便服务端记录第二通信链路状态,该第二通信链路状态表示第一客户端与本客户端之间的通信链路断开。
若本客户端在与声网设备通信过程中出现通信异常,或者本客户端主动断开通信链路,则会向服务端发送第二退出频道消息,这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保其记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
在上述任意第二客户端侧的装置实施例的基础上,还可以包括第一计时模块,用于在第二预定时刻开启第二定时器,若第二定时器超时时仍未收到第二频道令牌消息,确定与第一客户端的通信链路创建失败。其中,第二预定时刻可以是以下任意时刻:在向服务端发送接受会话邀请的响应消息的同时,在向服务端发送接受会话邀请的响应消息之前的预定时刻,在向服务端发送接受会话邀请的响应消息之后的预定时刻。
通过设置第二定时器,可以避免长时间等待第二频道令牌消息导致通信链路时延较长。
在上述任意第二客户端侧的装置实施例的基础上,第一声网设备通信模块若接收到服务端发送的第二进入频道请求消息的响应消息,且该第二进入频道请求消息的响应消息指示本客户端进入频道请求失败,第二客户端可以确定与第一客户端的通信链路创建失败。
基于与第一客户端侧的方法同样的发明构思,本申请实施例提供一种通信链路建立装置,包括:
会话邀请请求消息发送模块,用于向服务端发送会话邀请请求消息,该会话邀请请求消息中携带第二客户端的标识信息,以便服务端根据第二客户端的标识信息,向第二客户端发送会话邀请消息;
第一频道令牌消息接收模块,用于接收服务端发送的第一频道令牌消息,该第一频道令牌消息为上述会话邀请请求消息的响应消息,其中携带频道令牌;
第一进入频道请求消息发送模块,用于向服务端发送第一进入频道请求消息,第一进入频道消息用于请求进入目标频道,目标频道用于本客户端与第二客户端进行音视频会话;
第二声网设备通信模块,用于若接收到服务端返回的上述第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端的进入频道请求成功,根据频道令牌与声网设备通信,与该声网设备的通信至少包括以下步骤:将频道令牌发送给声网设备,以进行令牌验证;令牌验证通过后,通过目标频道向声网设备请求发送本客户端的音视频数据,并通过目标频道向声网设备请求获取第二客户端的音视频数据。
本申请实施例提供的上述装置在发起会话邀请的第一客户端上实现,第一客户端通过会话邀请请求消息的响应消息中携带的频道令牌与声网设备通信,且在接收到该响应消息后发送第一进入频道请求消息,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
可选的,第一客户端与上述声网设备的通信采用实时通信技术实现,而不是采用传统的即时通信技术实现,可以尽快发现通信异常,并停止后续通信过程,且尽量避免由于即时技术带来的延迟导致通信链路异常。
在上述任意第一客户端侧的装置实施例的基础上,第二声网设备通信模块若收到上述声网设备返回的第二获取成功响应消息,确定第二客户端已进入目标频道。其中,第二获取成功响应消息用于指示获取第二客户端的音视频数据的请求成功。
本申请实施例提供的装置,可以通过声网设备返回的第二获取成功响应消息确认第二客户端是否已经进入目标频道,从而可以在确保第二客户端与本客户端均已进入目标频道后触发与第二客户端的交互功能。尽量避免或尽早发现第二客户端的异常,从而可以尽量避免由于第二客户端异常导致的音视频会话异常。
在上述任意第一客户端侧的装置实施例的基础上,该装置还可以包括第一退出频道消息发送模块,用于若与上述声网设备通信异常,向服务端发送第一退出频道消息,以便服务端记录第二通信链路状态,第二通信链路状态表示本客户端与第二客户端之间的通信链路断开。
若本客户端在与声网设备通信过程中出现通信异常,或者本客户端主动断开通信链路,则会向服务端发送第一退出频道消息,这种情况下,服务端就会更新本端记录的通信链路状态,即记录上述第二通信链路状态,以确保其记录的第一客户端和第二客户端的通信链路状态准确,不影响第一客户端以及第二客户端后续的通信链路创建。
在上述任意第一客户端侧的装置实施例的基础上,该装置还可以包括第二计时模块,用于在第一预定时刻开启第一定时器,若第一定时器超时时仍未收到上述第一频道令牌消息,确定与第二客户端的通信链路创建失败。其中,第一预定时刻可以为以下任意时刻:在向服务端发送会话邀请请求消息的同时,在向服务端发送会话邀请请求消息之前的预定时刻,在向服务端发送会话邀请请求消息之后的预定时刻。
通过设置第一定时器,可以避免长时间等待第一频道令牌消息导致通信链路时延较长。
在上述任意第一客户端侧的装置实施例的基础上,第二声网设备通信模块若接收到服务端发送的第一进入频道请求消息的响应消息,且该第一进入频道请求消息的响应消息指示本客户端进入频道请求失败,第一客户端可以确定与第二客户端的通信链路创建失败。
基于与服务端侧方法同样的发明构思,本申请实施例提供一种服务端设备,包括处理器和存储器;存储器用于存储执行上述任意服务端侧方法实施例所述方法的程序;处理器被配置为执行该存储器中存储的程序。
本申请实施例提供的服务端设备,在接收到第二客户端返回的接受会话邀请的响应消息后生成频道令牌并分别发送给第一客户端和第二客户端,第一客户端和第二客户端在接收到该频道令牌后即可向服务端请求进入目标频道,而不需要在第一客户端完成频道进入后再触发第二客户端进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
基于与第二客户端侧方法同样的发明构思,本申请实施例提供一种客户端设备,包括处理器和存储器;存储器用于存储执行上述任意第二客户端侧方法实施例所述方法的程序;处理器被配置为执行上述存储器中存储的程序。
本申请实施例提供的上述客户端设备作为会话邀请的接收方,在向服务端发送接受会话邀请的响应消息后,会接收到频道令牌。之后,向服务端请求进入目标频道,而不需要等到第一客户端完成目标频道进入后才请求进入目标频道,由此可以达到缩短音视频会话通信链路的建立时间,提升音视频会话的效果。
基于与第一客户端侧方法同样的发明构思,本申请实施例提供一种客户端设备,包括处理器和存储器;存储器用于存储执行上述任意第一客户端侧方法实施例所述方法的程序;处理器被配置为执行上述存储器中存储的程序。
本申请实施例提供的客户端设备作为会话邀请的发起方,通过会话邀请请求消息的响应消息中携带的频道令牌与声网设备通信,且在接收到该响应消息后发送第一进入频道请求消息,一方面利用现有通信链路创建过程中的消息而不需要增加新的消息,可以减少消息交互,降低延时。另一方面,不需要通过原有通信链路创建过程中的频道创建消息的响应消息携带频道令牌,相应的,也就不需要频道创建的交互过程,进一步简化通信链路创建流程,降低时延。
本申请实施例提供一种计算机可读存储介质,存储有执行上述任意实施例所述方法的程序。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。