在 Twilio Programmable Chat 中并行创建聊天客户端

问题描述

尝试创建一个网络聊天应用程序,我们从后端获取用户所属的所有频道。后端返回一个包含 twilio 访问令牌和通道名称的对象数组。获得 API 响应后,Javascript 遍历数组并使用以下代码为每个频道创建聊天客户端:

let apiResponse = [
{token: 'abcdefgh',channel_name: 'a'},{token: 'abcdef',channel_name: 'b'},{token: 'abcd',channel_name: 'c'}
];

let createdClients = [];

apiResponse.forEach((item) => {
   Chat.create(chatRoomToken)
   .then(client => { 
       // You get the client here which can be pushed into createdClients array
   })
}

目前这是按顺序完成的,因为 JS 是单线程的,然后当 promise 被解决时,createdClients 数组被填充。我怎样才能为多个通道并行化 Chat.create(chatRoomToken) 以节省更多时间。有没有人使用网络工作者或服务工作者解决过这个问题?谢谢。

解决方法

这里是 Twilio 开发者布道者。

您只需要一个 Chat 客户端即可与 Chat 服务交互,而不是每个频道一个。使用聊天客户端,您可以load the user's channels with client.getUserChannelDescriptors()load individual channels with client.getChannelBySid()