首页 > 解决方案 > 当 websocket 断开连接时,Taskrouter 工作人员活动未更改

问题描述

我正在使用 twiliotaskrouter13.min.js 来启动一个使用

    this.workerClient = new Twilio.TaskRouter.Worker(
      token,
      this.twilioConfig.debugging,
      this.twilioConfig.workerActivities.offline,
      this.twilioConfig.workerActivities.offline,
      true
    );

预期的行为是,当 websocket 被丢弃时,代理会自动移动到“离线”状态

添加连接和断开活动,并关闭现有>会话

var worker = new Twilio.TaskRouter.Worker(WORKER_TOKEN, false, "WAxxx", "WAyy", true);

https://www.twilio.com/docs/taskrouter/js-sdk/worker#taskrouterworker

但是,这似乎不是当前的行为,我对几个工作人员进行了测试,看起来工作人员在 websocket 断开连接后仍处于当前状态。

有人知道我们是否遗漏了什么吗?也许是不同的配置或某个地方的超时?

标签: twiliotwilio-apitwilio-studiotwilio-taskrouter

解决方案


不久前我遇到了同样的问题,发了一条消息给支持,得到了这个答案:

当您尝试将工作人员更新为离线时,正如 worker.js 所做的那样,如果工作人员有保留,它将失败。

我唯一能想到的就是在应用程序的客户端代码中添加一个自定义的“卸载”事件处理程序,以便在将工作人员设置为离线之前拒绝任何待处理的保留。

该文档缺少有关其disconnecActivitySid工作原理的一些详细信息。我最终unload在页面中添加了一个事件侦听器,并修改了 webhook 以在工作人员连续错过 10 个预订时将工作人员的活动更新为离开。

任务分配回调可以返回拒绝任务的指令和不可用的活动,以便工作人员停止接收新任务。例如,{ instruction: 'reject', activity_sid: '<away_activity_sid' }.


推荐阅读