掌桥专利:专业的专利平台
掌桥专利
首页

会议状态处理方法、装置、电子设备、介质及程序产品

文献发布时间:2023-06-19 16:08:01



技术领域

本申请涉及多方通话技术领域,尤其涉及一种会议状态处理方法、装置、电子设备、介质及程序产品。

背景技术

在视频会议中,多个参会人相互之间可以看到对方客户端的状态,例如麦克风是否静音、摄像头是否开启等。根据需求,用户可以主动对客户端的状态进行变更,管理员也可以通过服务器对参与会议的客户端的状态进行变更。目前,如何及时响应用户状态变更的需求,成为亟待解决的技术问题。

发明内容

为了解决上述技术问题,本申请提供了一种会议状态处理方法、装置、电子设备、介质及程序产品。

根据本申请的第一方面,提供了一种会议状态处理方法,包括:

响应于针对参与会议的客户端中状态对象的变更操作,生成所述变更操作对应的状态变更请求;

将所述状态变更请求发送至服务器,以使所述服务器对所述状态变更请求进行响应;

如果未接收到所述服务器返回的、针对所述状态变更请求的响应消息,根据所述状态变更请求的优先级,确定所述客户端中所述状态对象的状态值,其中,所述状态值用于表征所述状态对象的会议状态;

根据所述状态对象的状态值,更新所述状态对象的会议状态。

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

如果接收到所述服务器返回的、针对所述状态变更请求的响应消息,获取所述服务器返回的会议状态副本;

根据所述会议状态副本中记录的所述客户端中所述状态对象的状态值,更新所述状态对象的会议状态,并对所述客户端本地的会议状态文本中所述状态对象的状态值进行更新。

可选的,如果未接收到所述服务器返回的、针对所述状态变更请求的响应消息,根据所述状态变更请求的优先级,确定所述客户端中所述状态对象的状态值,包括:

如果未接收到所述服务器返回的响应消息,且所述状态变更请求的优先级为第一优先级,将所述状态变更请求中所述状态对象的变更值,确定为所述客户端中所述状态对象的状态值;或者,

如果在超时时间到达时,未接收到所述服务器返回的响应消息,且所述状态变更请求的优先级为第二优先级,确定所述状态变更请求失败,将所述状态变更请求中所述状态对象的先前值,确定为所述客户端中所述状态对象的状态值,其中,所述第一优先级高于第二优先级。

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

在确定所述状态变更请求失败后,向所述服务器发送状态还原请求,以将所述服务器中所述状态对象的状态值确定为所述状态变更请求中所述状态对象的先前值。

可选的,所述将所述状态变更请求发送至服务器,包括:

将所述状态变更请求添加至所述客户端对应的消息队列中,并通过所述消息队列将所述状态变更请求发送至所述服务器。

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

如果未接收到所述服务器返回的响应消息,且所述状态变更请求的优先级为第一优先级,使所述状态变更请求保持在所述消息队列中,直至接收到所述响应消息。

可选的,所述向所述服务器发送状态还原请求,包括:

将所述状态变更请求从所述消息队列中移除,并将所述状态还原请求添加至所述消息队列中。

可选的,所述状态变更请求中包括所述变更操作对应的状态变更序号;

所述方法还包括:

如果接收到针对所述客户端的多个不同的变更操作,依次向所述服务器发送多个变更操作分别对应的状态变更请求,以使所述服务器根据多个状态变更请求中具有顺序关系的状态变更序号对所述多个状态变更请求进行处理。

可选的,所述状态变更请求包括表征执行所述变更操作的用户的身份信息。

根据本申请的第二方面,提供了一种会议状态处理装置,包括:

状态变更请求生成模块,用于响应于针对参与会议的客户端中状态对象的变更操作,生成所述变更操作对应的状态变更请求;

状态变更请求发送模块,用于将所述状态变更请求发送至服务器,以使所述服务器对所述状态变更请求进行响应;

状态值确定模块,用于如果未接收到所述服务器返回的、针对所述状态变更请求的响应消息,根据所述状态变更请求的优先级,确定所述客户端中所述状态对象的状态值,其中,所述状态值用于表征所述状态对象的会议状态;

会议状态更新模块,用于根据所述状态对象的状态值,更新所述状态对象的会议状态。

可选的,所述会议状态处理装置还包括:

会议状态副本获取模块,用于如果接收到所述服务器返回的、针对所述状态变更请求的响应消息,获取所述服务器返回的会议状态副本;

所述会议状态更新模块,还用于根据所述会议状态副本中记录的所述客户端中所述状态对象的状态值,更新所述状态对象的会议状态;

状态值更新模块,用于根据所述会议状态副本中记录的所述客户端中所述状态对象的状态值,对所述客户端本地的会议状态文本中所述状态对象的状态值进行更新。

可选的,所述状态值确定模块,具体用于如果未接收到所述服务器返回的响应消息,且所述状态变更请求的优先级为第一优先级,将所述状态变更请求中所述状态对象的变更值,确定为所述客户端中所述状态对象的状态值;或者,

如果在超时时间到达时,未接收到所述服务器返回的响应消息,且所述状态变更请求的优先级为第二优先级,确定所述状态变更请求失败,将所述状态变更请求中所述状态对象的先前值,确定为所述客户端中所述状态对象的状态值,其中,所述第一优先级高于第二优先级。

可选的,所述会议状态处理装置还包括:

状态还原请求发送模块,用于在确定所述状态变更请求失败后,向所述服务器发送状态还原请求,以将所述服务器中所述状态对象的状态值确定为所述状态变更请求中所述状态对象的先前值。

可选的,所述状态变更请求发送模块,具体用于将所述状态变更请求添加至所述客户端对应的消息队列中,并通过所述消息队列将所述状态变更请求发送至所述服务器,以使所述服务器对所述状态变更请求进行响应。

可选的,所述会议状态处理装置还包括:

态变更请求保持模块,用于如果未接收到所述服务器返回的响应消息,且所述状态变更请求的优先级为第一优先级,使所述状态变更请求保持在所述消息队列中,直至接收到所述响应消息。

可选的,所述状态还原请求发送模块,具体用于在确定所述状态变更请求失败后,将所述状态变更请求从所述消息队列中移除,并将所述状态还原请求添加至所述消息队列中。

可选的,所述状态变更请求中包括所述变更操作对应的状态变更序号;

所述状态变更请求发送模块还用于如果接收到针对所述客户端的多个不同的变更操作,依次向所述服务器发送多个变更操作分别对应的状态变更请求,以使所述服务器根据多个状态变更请求中具有顺序关系的状态变更序号对所述多个状态变更请求进行处理。

可选的,所述状态变更请求包括表征执行所述变更操作的用户的身份信息。

根据本申请的第三方面,提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面所述的会议状态处理方法。

根据本申请的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的会议状态处理方法。

根据本申请的第五方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面所述的会议状态处理方法。

本申请实施例提供的技术方案与现有技术相比具有如下优点:

在用户对参与会议的客户端的会议状态进行变更的情况下,客户端响应于针对客户端中状态对象(例如麦克风、摄像头等)的变更操作,生成变更操作对应的状态变更请求,并将状态变更请求发送至服务器。相关技术中,只有客户端得到服务器的响应后,客户端的状态才可以变更成功。因此,在某些场景下,例如当客户端和服务器之间的网络质量较差时,客户端无法接收到服务器的响应,导致客户端的状态将无法变更成功,影响用户体验。例如,客户端无法静音,将导致用户的隐私无法得到保护。而本申请实施例中,客户端如果未接收到服务器返回的响应消息,可以根据状态变更请求的优先级,确定客户端中状态对象的状态值。可见,即使在网络请求失败的情况下,客户端也可以根据状态变更请求的优先级,主动确定状态对象的状态值,从而根据状态对象的状态值,更新状态对象的会议状态。例如,对于高优先级的状态变更请求,客户端可以主动变更客户端中状态对象的会议状态,而不受网络请求失败的影响,从而可以提高会议状态变更成功的概率,提升用户体验。例如,客户端在关闭麦克风的情况下可以立即关闭麦克风,从而保护用户的隐私。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了可以应用于本申请实施例的会议状态处理方法的示例性应用环境的系统架构的示意图;

图2为客户端和服务器之间的一种交互示意图;

图3为本申请实施例中会议状态处理方法的一种流程图;

图4为本申请实施例中会议状态确定方法的一种示意图;

图5为本申请实施例中用户和管理员对同一客户端执行变更操作的一种示意图;

图6为本申请实施例中用户和管理员对同一客户端执行变更操作的又一种示意图;

图7为本申请实施例中会议状态处理方法的又一种流程图;

图8为本申请实施例中会议状态处理装置的一种结构示意图;

图9为本申请实施例中电子设备的一种结构示意图。

具体实施方式

为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。

图1示出了可以应用于本申请实施例的会议状态处理方法的示例性应用环境的系统架构的示意图。

如图1所示,系统架构100可以包括客户端101、客户端102、客户端103中的至少两个,网络104和服务器105。网络104用以在客户端101、客户端102、客户端103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。客户端101、客户端102、客户端103是参与同一会议的客户端,可以是各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。服务器105是客户端101、客户端102、客户端103参与会议时所使用的应用对应的服务器。

应该理解,图1中的客户端、网络和服务器的数量仅仅是示意性的。根据实现需要,可以具有更多个客户端、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。

本申请实施例所提供的会议状态处理方法一般由客户端101、客户端102、客户端103执行,相应地,会议状态处理装置可以设置于客户端101、客户端102、客户端103中。在会议过程中,用户可以对客户端101、客户端102、客户端103中的状态对象(例如麦克风、摄像头等)执行变更操作。例如,对麦克风执行静音操作,即将麦克风由非静音状态变更为静音状态。客户端101、客户端102、客户端103可以按照本申请实施例的会议状态处理方法,对该变更操作进行处理,以对状态对象的会议状态进行更新。

参见图2,图2为客户端和服务器之间的一种交互示意图。假设用户对客户端101执行静音操作,响应于该静音操作,可以生成静音变更请求,并将静音变更请求发送至服务器105。服务器105接收到静音变更请求后进行响应,客户端101接收到响应消息后可以操作本地的麦克风进行静音。可以看出,每个状态变更操作均具有对应的SeqID,保证了服务器105对各个变更请求进行有序处理。

然而,在某些情况下(例如网络质量较差),客户端101、客户端102、客户端103无法接收到响应消息,客户端101将不能对状态对象的会议状态进行变更。例如,不能操作麦克风进行静音,无法保护用户的隐私。为了解决该问题,本申请实施例中,可以根据状态变更请求的优先级,确定客户端101中状态对象的状态值,即状态对象的会议状态。客户端101可以主动确定状态对象的会议状态,而不受网络请求失败的影响,从而可以提高参与会议的客户端会议状态变更成功的概率。

以下首先对本申请实施例的会议状态处理方法进行介绍。

参见图3,图3为本申请实施例中会议状态处理方法的一种流程图,可以包括以下步骤:

步骤S310,响应于针对参与会议的客户端中状态对象的变更操作,生成变更操作对应的状态变更请求。

在视频会议或语音会议中,参与会议的客户端的数量至少包括两个,会议的发起者为会议的管理员,其他参与者为用户。用户可以对该用户所使用的客户端中的状态对象(例如视频会议中的麦克风、摄像头等,语音会议中的麦克风)执行变更操作。例如,在视频会议中,用户可以对麦克风执行静音操作、解除静音操作,对摄像头执行开启操作、关闭操作等。管理员除了可以对自身所使用的客户端中的状态对象执行变更操作外,还可以对其他用户所使用的客户端中的状态对象执行变更操作。例如,在发现用户A的噪音较大时,可以对用户A所使用的客户端执行静音操作。

在对客户端中的状态对象执行变更操作时,可以生成变更操作对应的状态变更请求。该状态变更请求中可以包括:待变更的状态对象、状态对象的先前值(即变更操作之前状态对象对应的状态值)以及状态对象的变更值(即变更操作之后状态对象对应的状态值)。

例如,用户对麦克风执行静音操作,那么,生成的状态变更请求中状态对象为麦克风,状态对象的先前值为开启,状态对象的变更值为关闭。其中,先前值和变更值可以是具体的文字内容,也可以通过数字表示具体的文字内容。例如,1可以表示开启,0可以表示关闭。

需要说明的是,针对用户所使用的客户端,如果用户对该客户端中的状态对象执行变更操作,那么,生成状态变更请求的客户端即为该用户所使用的客户端。如果管理员对该客户端中的状态对象执行变更操作,那么,生成状态变更请求的客户端即为管理员所使用的客户端。

步骤S320,将状态变更请求发送至服务器,以使服务器对状态变更请求进行响应。

客户端在生成状态变更请求后,可以将状态变更请求发送至服务器,即参与会议时所使用的应用对应的服务器。服务器接收到状态变更请求后,可以进行响应,并返回对应的响应消息。

在一些实施例中,客户端可以将状态变更请求添加至客户端对应的消息队列中,并通过消息队列将状态变更请求发送至服务器。消息队列中可以记录客户端产生的、但没有得到服务器响应的状态变更请求。也就是,针对任一状态变更请求,在得到服务器的响应后,可以将该状态变更请求从消息队列中移除。

步骤S330,如果未接收到服务器返回的、针对状态变更请求的响应消息,根据状态变更请求的优先级,确定客户端中状态对象的状态值,其中,状态值用于表征状态对象的会议状态。

如果客户端未接收响应消息,表示当前网络状况可能较差,可以根据预先设置的状态变更请求的优先级,确定客户端中状态对象的状态值。状态变更请求的优先级可以根据实际情况进行设置,例如,针对静音操作,为了防止用户无法停止本地的音频采集上传,用户执行完静音操作后,可以立即本地生效。如果是解除静音操作,为了防止服务器以及其他参与会议的客户端认为客户端是静音状态却能听到其声音,可以得到服务器响应后再在本地生效。也就是,静音操作对应的状态变更请求可以具有较高的优先级,解除静音操作对应的状态变更请求可以具有较低的优先级。

类似地,关闭摄像头的操作对应的状态变更请求也可以具有较高的优先级,开启摄像头的操作对应的状态变更请求可以具有较低的优先级。假设静音操作和关闭摄像头的操作对应的状态变更请求的优先级为第一优先级,解除静音操作和开启摄像头的操作对应的状态变更请求的优先级为第二优先级,那么,第一优先级高于第二优先级。

在一些实施例中,如果未接收到服务器返回的响应消息,且状态变更请求的优先级为第一优先级,由于客户端没有接收到服务器返回的会议状态副本,本地存储的会议状态文本中没有及时对客户端中状态对象的状态值进行更新,此时,可以选用状态变更请求中状态对象的变更值,将状态变更请求中状态对象的变更值,确定为客户端中状态对象的状态值。

如果消息队列中包括多个状态变更请求,遍历消息队列中的所有的状态变更请求,对比消息队列中状态变更请求中状态对象的变更值和本地存储的会议状态文本中对应状态对象的当前值,如果状态变更请求的优先级是第一优先级,则选用消息队列中的变更值,最终得到一个正确的本地状态。如果状态变更请求的优先级是第二优先级,则选用会议状态文本中对应状态对象的当前值。

参见图4,图4为本申请实施例中会议状态确定方法的一种示意图。例如,会议状态文本中摄像头的当前值为开启,麦克风的当前值为开启。消息队列中包括两个状态变更请求,一个状态变更请求是将摄像头由关闭变更为开启,对应第二优先级,一个状态变更请求是将麦克风由开启变更为关闭,对应第一优先级。因此,最终麦克风则选用消息队列中的变更值,即关闭;而摄像头则选用会议状态文本中的当前值,即开启。

如果未接收到服务器返回的响应消息,且状态变更请求的优先级为第一优先级,可以使状态变更请求保持在消息队列中,直至接收到响应消息。也就是,第一优先级的状态变更请求在得到服务器响应后从消息队列中移出,在未得到服务器响应的情况下,不会从消息队列中移出,从而保证该变更操作最终能够操作成功。

针对第二优先级的状态变更请求,可以对应有超时时间。如果在超时时间到达时,未接收到服务器返回的响应消息,且状态变更请求的优先级为第二优先级,确定状态变更请求失败,可以将状态变更请求中状态对象的先前值确定为客户端中状态对象的状态值。此时,由于没有接收到服务器返回的响应消息,因此,此时服务器可能对该状态变更请求进行了处理,也可能没有对该状态变更请求进行处理,即,不确定服务器的会议状态副本中客户端的会议状态,服务器可能进行了更新,也可能没有进行更新。

为了保证服务器的会议状态副本中客户端的会议状态,和客户端本地的会议状态文本中客户端的会议状态相同,还可以向服务器发送状态还原请求,以将服务器中状态对象的状态值确定为状态变更请求中状态对象的先前值。其中,状态还原请求指的是与状态变更请求相反的请求,状态还原请求的变更值为状态变更请求的先前值。

举例而言,如果状态变更请求的状态对象为麦克风,先前值为关闭,变更值为开启,则该状态变更请求对应第二优先级。如果客户端在超时时间到达时没有接收到响应消息,可以确定该状态变更请求失败,可以发送状态还原请求,状态还原请求的状态对象为麦克风,变更值为关闭。此时,状态还原请求对应第一优先级,同样地,第一优先级的状态还原请求在得到服务器响应后从消息队列中移出,因此,该状态还原请求最终也可以得到服务器的响应。例如,在网络恢复正常后,可以得到服务器的响应。

如果在超时时间到达时,未接收到服务器返回的响应消息,且状态变更请求的优先级为第二优先级,确定状态变更请求失败,此时可以将状态变更请求从消息队列中移除,并将状态还原请求添加至消息队列中。可以理解的是,在消息队列中存在状态变更请求和/或状态还原请求的情况下,可以不断地尝试向服务器提交直至成功。

在一些实施例中,状态变更请求中包括变更操作对应的状态变更序号,可以表示为CliSeqID,用于记录每一次变更操作。服务器每次处理来自客户端的状态变更请求时,可以更新客户端请求附带的CliSeqID到服务器记录的状态副本中。如果接收到用户针对客户端的多个不同的变更操作,依次向服务器发送多个变更操作分别对应的状态变更请求。多个状态变更请求可以具有对应的状态变更序号,状态变更序号之间可以具有顺序关系,例如按时间顺序依次增大。

举例而言,用户对客户端依次执行了两次变更操作,执行关闭摄像头的操作和静音操作。关闭摄像头的操作对应的状态变更请求中CliSeqID可以为1,静音操作对应的状态变更请求中CliSeqID可以为2。如果用户后续又执行了第三次变更操作,对应的状态变更请求中CliSeqID可以为3。

这样,服务器根据多个状态变更请求中具有顺序关系的状态变更序号对多个状态变更请求进行处理。例如,对于请求乱序的场景,服务器会通过比较CliSeqID的大小,对乱序到达的状态变更请求进行有序处理。

在一些实施例中,客户端每次请求服务器时,可以将消息队列中的多个状态变更请求合并为一个目标状态变更请求,该目标状态变更请求中记录各个状态对象、每个状态对象的先前值和变更值,目标状态变更请求的CliSeqID可以使用消息队列末尾状态变更请求的CliSeqID,即目标CliSeqID。服务器处理成功后可以向客户端发送会议状态副本,客户端收到会议状态副本后,可以将消息队列中CliSeqID小于等于目标CliSeqID的状态变更请求视为成功并移出消息队列。

在一些实施例中,状态变更请求可以包括表征执行变更操作的用户的身份信息。例如,根据身份信息可以确定执行变更操作的用户为普通用户还是管理员。如果用户针对客户端中状态对象的变更操作为第一变更操作,管理员针对客户端中状态对象的变更操作为第二变更操作,第一变更操作对应的状态变更请求中的状态变更序号和第二变更操作对应的状态变更请求中的状态变更序号可以不具有顺序关系。

参见图5和图6,用户对客户端依次执行了解除静音、静音和解除静音操作,对应的状态变更请求中的状态变更序号CliSeqID分别为1、2、3。如果在此过程中,管理员也对客户端执行了同一变更操作,例如,用户执行静音操作时管理员也同时执行了静音操作。图5中管理员执行的静音操作在用户的静音操作之后,图6中管理员执行的静音操作在用户的静音操作之前。那么,服务器返回的响应消息中,针对用户执行的变更操作,可以依次增加状态变更序号,针对管理员执行的变更操作,可以不增加状态变更序号,而是与前一次状态变更请求中的CliSeqID相同。但是,每个变更操作对应的SeqID可以依次增加。可以看出,当用户和管理员执行的变更操作同时发生时,服务器处理状态变更请求的顺序不影响最终会议状态的正确性。

步骤S340,根据状态对象的状态值,更新状态对象的会议状态。

由于状态值可以表征状态对象的会议状态,因此,在确定状态对象的状态值之后,可以直接根据该状态值更新状态对象的会议状态。例如,状态对象为摄像头,状态值1表示开启,状态值0表示关闭,如果确定状态对象的状态值为1,则开启摄像头;如果确定状态对象的状态值为0,则关闭摄像头。

本申请实施例的会议状态处理方法,在用户对参与会议的客户端的会议状态进行变更的情况下,客户端响应于针对客户端中状态对象(例如麦克风、摄像头等)的变更操作,生成变更操作对应的状态变更请求,将状态变更请求发送至服务器。相关技术中,只有客户端得到服务器的响应后,客户端的状态才可以变更成功。因此,在某些场景下,例如当客户端和服务器之间的网络质量较差时,客户端无法接收到服务器的响应,导致客户端的状态将无法变更成功,影响用户体验。例如,客户端无法静音,将导致用户的隐私无法得到保护。而本申请实施例中,客户端如果未接收到服务器返回的响应消息,可以根据状态变更请求的优先级,确定客户端中状态对象的状态值。可见,即使在网络请求失败的情况下,客户端也可以根据状态变更请求的优先级,主动确定状态对象的状态值,从而根据状态对象的状态值,更新状态对象的会议状态。例如,对于高优先级的状态变更请求,客户端可以主动变更客户端中状态对象的会议状态,而不受网络请求失败的影响,从而可以提高会议状态变更成功的概率,提升用户体验。例如,客户端在关闭麦克风的情况下可以立即关闭麦克风,从而保护用户的隐私。

参见图7,图7为本申请实施例中会议状态处理方法的又一种流程图,可以包括以下步骤:

步骤S410,响应于针对参与会议的客户端中状态对象的变更操作,生成变更操作对应的状态变更请求。

步骤S420,将状态变更请求发送至服务器,以使服务器对状态变更请求进行响应。

上述步骤S410~步骤S420与图3实施例中步骤S310~步骤S320相同,具体参见图3实施例中的描述即可,在此不再赘述。

步骤S430,如果接收到服务器返回的、针对该状态变更请求的响应消息,获取服务器返回的会议状态副本。

本申请实施例中,服务器本地存储有会议状态副本,该会议状态副本中记录有每个参与会议的客户端的状态。服务器对状态变更请求进行响应后,可以修改会议状态副本中该客户端的状态,还可以将修改后的会议状态副本(即最新的会议状态副本)同步到会议中的所有客户端。

步骤S440,根据会议状态副本中记录的客户端中状态对象的状态值,更新状态对象的会议状态,并对客户端本地的会议状态文本中状态对象的状态值进行更新。

客户端本地存储有会议状态文本,与服务器端存储的会议状态副本类似,该会议状态文本中记录有每个参与会议的客户端的状态。由于服务器对会议状态副本进行了更新,因此,客户端接收到会议状态副本后,可以同步对本地的会议状态文本中状态对象的状态值进行更新,从而保证客户端和服务器中客户端会议状态的一致性。其中,状态值用于表征状态对象的会议状态,因此,可以直接根据状态值,确定客户端中状态对象的会议状态,并更新状态对象的会议状态。

步骤S450,如果未接收到服务器返回的、针对状态变更请求的响应消息,根据状态变更请求的优先级,确定客户端中状态对象的状态值。

步骤S460,根据状态对象的状态值,更新状态对象的会议状态。

上述步骤S450~步骤S460与图3实施例中步骤S330~步骤S340相同,具体参见图3实施例中的描述即可,在此不再赘述。

本申请实施例的会议状态处理方法,可以在服务器本地维护用于记录各个客户端的会议状态的会议状态副本,以及在客户端本地维护用于记录各个客户端的会议状态的会议状态文本。在客户端接收到响应消息的情况下,根据从服务器接收到的会议状态副本对本地的会议状态文本进行更新,并根据会议状态文本中状态对象的状态值,确定状态对象的会议状态。在未接收到响应消息的情况下,针对第一优先级的状态变更请求,将状态变更请求中状态对象的变更值确定为最终的状态值,可以保证第一优先级的状态变更请求不受网络请求失败的影响,例如客户端关闭麦克风的情况下能够立即关闭麦克风。针对第二优先级的状态变更请求,将会议状态文本中状态对象的当前值确定为最终的状态值,保证客户端得到服务器响应后,对客户端执行变更操作,防止服务器以及其他客户端认为客户端是静音状态却能听到其声音。

相应于上述方法实施例,本申请实施例还提供了一种会议状态处理装置,参见图8,会议状态处理装置800包括:

状态变更请求生成模块810,用于响应于针对参与会议的客户端中状态对象的变更操作,生成变更操作对应的状态变更请求;

状态变更请求发送模块820,用于将状态变更请求发送至服务器,以使服务器对状态变更请求进行响应;

状态值确定模块830,用于如果未接收到服务器返回的、针对状态变更请求的响应消息,根据状态变更请求的优先级,确定客户端中状态对象的状态值,其中,状态值用于表征状态对象的会议状态;

会议状态更新模块840,用于根据状态对象的状态值,更新状态对象的会议状态。

可选的,会议状态处理装置800还包括:

会议状态副本获取模块,用于如果接收到服务器返回的、针对状态变更请求的响应消息,获取服务器返回的会议状态副本;

会议状态更新模块840,还用于根据会议状态副本中记录的客户端中状态对象的状态值,更新状态对象的会议状态;

状态值更新模块,用于根据会议状态副本中记录的客户端中状态对象的状态值,对客户端本地的会议状态文本中状态对象的状态值进行更新。

可选的,状态值确定模块830,具体用于如果未接收到服务器返回的响应消息,且状态变更请求的优先级为第一优先级,将状态变更请求中状态对象的变更值,确定为客户端中状态对象的状态值;或者,

如果在超时时间到达时,未接收到服务器返回的响应消息,且状态变更请求的优先级为第二优先级,确定状态变更请求失败,将状态变更请求中状态对象的先前值,确定为客户端中状态对象的状态值,其中,第一优先级高于第二优先级。

可选的,会议状态处理装置800还包括:

状态还原请求发送模块,用于在确定状态变更请求失败后,向服务器发送状态还原请求,以将服务器中状态对象的状态值确定为状态变更请求中状态对象的先前值。

可选的,状态变更请求发送模块820,具体用于将状态变更请求添加至客户端对应的消息队列中,并通过消息队列将状态变更请求发送至服务器,以使服务器对状态变更请求进行响应。

可选的,会议状态处理装置800还包括:

态变更请求保持模块,用于如果未接收到服务器返回的响应消息,且状态变更请求的优先级为第一优先级,使状态变更请求保持在消息队列中,直至接收到响应消息。

可选的,状态还原请求发送模块,具体用于在确定状态变更请求失败后,将状态变更请求从消息队列中移除,并将状态还原请求添加至消息队列中。

可选的,状态变更请求中包括变更操作对应的状态变更序号;

状态变更请求发送模块820还用于如果接收到针对客户端的多个不同的变更操作,依次向服务器发送多个变更操作分别对应的状态变更请求,以使服务器根据多个状态变更请求中具有顺序关系的状态变更序号对多个状态变更请求进行处理。

可选的,状态变更请求包括表征执行变更操作的用户的身份信息。

上述装置中各模块或单元的具体细节已经在对应的方法中进行了详细的描述,因此此处不再赘述。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

在本申请的示例性实施例中,还提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行本示例实施方式中上述会议状态处理方法。

图9为本申请实施例中电子设备的一种结构示意图。需要说明的是,图9示出的电子设备900仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图9所示,电子设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统操作所需的各种程序和数据。中央处理单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如局域网(LAN)卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元901执行时,执行本申请的装置中限定的各种功能。

本申请实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述会议状态处理方法。

需要说明的是,本申请所示的计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器、只读存储器、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频等等,或者上述的任意合适的组合。

本申请实施例中,还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述会议状态处理方法。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 会议状态处理方法、装置、电子设备、介质及程序产品
  • 状态处理方法、装置、电子设备、存储介质及程序产品
技术分类

06120114718815