如何通过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
相关产品推荐
相关产品推荐

