You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Twilio TaskRouter Worker的disconnected事件获取断开原因?

如何获取Twilio TaskRouter Worker断开连接的原因

是的,你可以通过disconnected事件监听器获取断开连接的具体原因。Twilio的TaskRouter Worker客户端触发disconnected事件时,会传递一个包含错误信息的参数(通常是Error对象或带code和message属性的对象),你可以通过这个参数判断断开原因,给用户展示对应的提示。

当你启用closeExistingSessions导致其他Worker会话被强制断开时,被踢下线的客户端会收到错误码3001,对应的消息通常是**"Another session has connected for this worker, disconnecting current session."**,这正是你用来提示用户"账号已在其他设备登录,当前会话断开"的依据。

修改你的代码来获取这些信息:

const worker = new Twilio.TaskRouter.Worker(WORKER_TOKEN);

worker.on("disconnected", function(error) {
  console.log("WebSocket已断开连接");
  // 判断是否为其他会话登录导致的强制断开
  if (error && error.code === 3001) {
    alert("你的账号已在其他设备登录,当前会话已断开");
  } else if (error) {
    // 处理其他断开场景,比如令牌过期、网络问题等
    console.error("断开原因:", error.code, error.message);
    alert(`连接断开:${error.message}`);
  } else {
    // 主动断开的情况(比如调用worker.disconnect())
    alert("连接已主动断开");
  }
});

除了3001,常见的断开错误码还有:

  • 3000:令牌无效或已过期
  • 5000:服务器内部错误
  • 无错误码:主动调用断开接口导致的连接终止

你可以根据这些错误码和消息,给终端用户展示更精准的提示内容。

内容的提问来源于stack exchange,提问作者Jyothi Babu Araja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:40:43