首页 > 解决方案 > 在 NODEjs 上使用 directline 3.0 在网站上部署 azure bot

问题描述

我正在尝试在 localhost 上托管我的 Web 应用程序。我正在使用 Directline 3.0,我想使用 websockets 将消息推送到窗口中。我不想嵌入机器人。我已经有了 GET 和 POST 请求,因此我可以通过运行带有承载令牌的 javascript 文件来发送和接收对话,并通过从机器人发送和接收消息来恢复对话的运行,但我希望这发生在 localhost 网站上在没有嵌入的基于聊天的窗口上。

我怎样才能做到这一点?如何将 websockets 的聊天窗口链接到 GET 和发布文件,以便我可以实时发送消息。

标签: node.jsazurewebsocketbotframeworkdirect-line-botframework

解决方案


我建议您使用BotFramework-DirectLineJS包将 Direct Line 直接(不是双关语)集成到您的项目中。这个包是专门为在不使用 WebChat 作为 UI 组件的情况下与机器人进行通信而构建的。

您可以参考一个 v3示例。该项目在 DirectLineBot 和 DirectLineClient 之间拆分。DirectLineBot 演示了一个 v3 机器人。您需要更新此文件夹以包含您的 v4 机器人。DirectLineClient 与 v3 或 v4 的工作方式相同。因此,当您的客户端连接、生成令牌并开始发送活动时,您的 v4 机器人应该拾取这些并做出相应的响应。同样,您的客户应该获取机器人的响应。

此时,您需要更新客户端以显示从用户/机器人发送和接收的活动。

您也可以考虑查看来自 WebChat 开发人员的非官方“普通 ui”示例。它使用 React,但它不依赖 WebChat 作为 UI 组件。我能够在大约 5 分钟内启动它。它有目的地去除任何样式,只是将活动作为文本/json 对象发布到页面。

您可以删除输入字段并将页面配置为接受输入以在页面上呈现。它可能是一个有用的起点,并且可以很好地适应上述 DirectLineJS 选项。

在此处输入图像描述

如果这些选项都不合适,那么您将需要使用 Axios、Fetch 或一些类似的包在客户端和机器人之间进行 GET、POST 等调用。

希望有帮助!


推荐阅读