javascript – 创建多个Microsoft Bot实例,使用DirectLine API,.Net和JS轮询它们的可用性?

我们为我们的网站开发了一个机器人,用作一种信使,用户选择是否要与我们的支持或聊天团队交谈并将其路由到正确的团队.聊天升级和聊天服务由Live Assist提供.

在本地开发僵尸程序之后,一切似乎都运行正常,但是一旦我们实时启动它,我们发现僵尸程序一次只能通过Live Assist进行一次对话.任何打开聊天的人,无论是哪个设备,都是相同的单个实例对话.我们联系了Live Assist,他们说我们需要多个机器人来处理多个聊天实例.他们确实将我们与他们的一些在线资源联系起来,但他们没有就这一特定问题提供任何建议(我们认为这是一个常见问题?)

我一直在摸索如何实现这样的东西,我们能够在Azure上托管多个机器人但是我很难找到一种方法来干净地轮询机器人以查看对话是否正在进行而不会中断特定会话.找到的唯一可能有帮助的资源是here,但是它位于node.js中,而我们的解决方案是前端的JavaScript,而僵尸程序代码是C#.Net.

任何指导将不胜感激.非常感谢.

编辑:为了澄清,我们想知道我们想要什么是可能的,如果有可能有多个azure bot框架实例并通过网页上的javascript到达它们,轮询聊天是否活跃,然后使用免费的机器人用户.

最佳答案 在僵尸框架中,没有内置功能来实现这一点,因为本机僵尸框架支持跨所有通道的多个并发对话.作为限制Live Assist的一种解决方法,让我分享一个我有的想法.

您可以在某种类型的数据存储中有一个时间,每次发送/接收消息时都会重置,并且一旦该计时器到期,就会使机器人认为“不在对话中”.在这种情况下,当您的网页加载时,它会ping您的数据存储区以查看哪个机器人可用,如果有可用,请返回可用机器人的直接线路密钥令牌.这将导致您的前端加载正确的机器人的聊天.我没有要分享的实现,因为我从未见过这样的场景,但我希望这会有所帮助.

点赞