Twilio完成的房间-可以重新加入/重新创建吗?

时间:2019-09-24 22:10:51

标签: twilio twilio-video

我正在使用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吗?

更新

状态从completedin-progress的状态cannot be updated似乎。因此,当一个房间完成后,如果已经存在一个具有唯一名称的房间,我如何继续使用相同的UniqueName

1 个答案:

答案 0 :(得分:0)

在这里回答我自己的问题,因为我认为我有解决办法。

在修改了Twilio快速入门应用程序后,我发现UniqueNamein-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);
  }