Twilio视频 - 如何获得一个房间的当前参与人数?

时间:2017-09-29 10:45:19

标签: twilio twilio-api

我想知道使用Twilio Video时目前有多少人正在连接房间。

Twilio有一个REST API来获取房间资源,但它不会返回当前的参与者数量。

https://www.twilio.com/docs/api/video/rooms-resource#get-by-sid

我看到的唯一方法是订阅状态回调到“参与者连接”和断开连接的事件,并手动跟踪有多少参与者连接或离开房间。

有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用twilio服务器端sdk,让我分享NodeJS示例,以便您更好地实现。

首先让我们定义初始化twilio客户端并获取会议室的已连接参与者的功能。

async function getConnectedParticipants(roomName) {

  var Twilio = require('twilio');

  var apiKeySid = "YOUR_TWILIO_API_KEY_SID_HERE";
  var apiKeySecret = "YOUR_TWILIO_API_SECRET_HERE";
  var accountSid = "YOUR_TWILIO_ACCOUNT_SID_HERE";

  var client = new Twilio(apiKeySid, apiKeySecret, {accountSid: accountSid});

  var list = await client.video.rooms(roomName)
                      .participants
                      .list({status: 'connected'});

  return list;
}

现在,让我们使用我们的功能,返回与您连接的参与者。

var connectedParticipants = await getConnectedParticipants("YourRoomName");

// print all connected participants
console.log('connectedParticipants', connectedParticipants);

注意:在此示例中,我使用了 async await ,请在实施前先进行检查。

答案 1 :(得分:0)

Twilio开发者传道者在这里。

保留参与者的服务器端列表'基于参与者连接和断开事件的身份可能是目前解决此问题的最佳方式。

另一种方法是从前端获取此信息。 JavaScript库允许您查询the participants in a room。您可以定期或基于事件查询该属性并通过Ajax将其发送到您的服务器。

如果有帮助,请告诉我。

<强>更新

已连接到房间的Rooms API now allows you to retrieve information on participants。例如,要使用Node.js获取房间中当前连接的用户,代码将如下所示:

var client = new Twilio(apiKeySid, apiKeySecret, {accountSid: accountSid});

client.video.rooms(roomSid).participants
  .list({status: 'connected'}, (err, participants) => {
    if (err) { console.error(err); return; }
    console.log(participants.length);
  });