我正在使用REST API创建房间。在docs中,它表示一个房间在空5分钟后将结束。我想知道在重复使用同一房间时这意味着什么。参与者可以重新加入那个房间吗?
我的用例是用户通过服务器端点请求加入会议室。执行check by UniqueName
以查看该房间是否存在。如果不是,则使用UniqueName
created。
在某些情况下,肯定会创建一个房间,但房间空了5分钟以上,我想再次使用相同的UniqueName
来加入房间(空房间,已完成房间或其他房间)。但是对我来说,尚不清楚一旦完成一个房间就可以做到这一点。
例如,如果另一个用户尝试加入已完成的会议室,则上面的逻辑是否仍然有效,或者会中断b / c,因此无法加入或重新创建处于completed
状态的会议室?我的目标是始终访问具有相同UniqueName
的房间。
请告知,谢谢。
修改
我只是想过要改成retrieve a list of rooms by UniqueName
,这将向我显示一个已经创建的房间,而不论其状态如何。但是,如果状态为completed
,我仍然需要能够使用同一房间。
状态可以从completed
更新为in-progress
吗?
更新
状态从completed
到in-progress
的状态cannot be updated似乎。因此,当一个房间完成后,如果已经存在一个具有唯一名称的房间,我如何继续使用相同的UniqueName
?
答案 0 :(得分:0)
在这里回答我自己的问题,因为我认为我有解决办法。
在修改了Twilio快速入门应用程序后,我发现UniqueName
在in-progress
房间的环境中是唯一的。我通过在几秒钟内多次加入并离开一个房间来验证了这一点。每次我离开时都会创建一个新房间。我没有意识到,但是通过客户端SDK创建的会议室将在所有参与者离开后立即关闭。如文档所述,通过REST API创建的会议室将保持开放状态5分钟。
当我说“创建”时,是指创建了一个带有新SID
的新房间,并且可以在Twilio控制台中进行查看,即使唯一名称未更改也是如此。因此,实际上您可以拥有多个具有相同UniqueName
的房间,但是在进行REST API调用时,只会评估状态为in-progress
的房间。
因此,答案将是简单地尝试创建一个具有唯一名称的房间。如文档中所述,当房间存在时这样做会导致404错误。即:
{ [Error: Room exists]
status: 400,
message: 'Room exists',
code: 53113,
moreInfo: 'https://www.twilio.com/docs/errors/53113',
detail: undefined }
但是,如果具有唯一名称的房间已经completed
,则可以创建具有相同唯一名称的新房间。最简单的方法是尝试/捕捉创建房间并处理错误。
let room;
try {
room = await client.video.rooms.create({uniqueName: 'test'})
} catch (e) {
console.log(e);
}