使用 DirectLine javascript 连接两个机器人

时间:2021-03-19 05:02:36

标签: botframework direct-line-botframework

这是我的场景:

  • Bot A(使用 BotFramework-sdk 制作,用于 Javascript(Node.js))接收音频文件,调用 Speech Services REST API 并从中获取文本。
  • Bot B(使用 BotFrameworkComposer 制作)具有 qna 功能。

我需要将Bot A设置为代理接收音频附件并要求Bot B中显示返回的答案机器人 A

我已经设法将这两个机器人与直线连接起来,我的问题出现在对话开始后:在 机器人 A 中,我正在使用 REST API使用 streamURL 发送消息和 websocket 以接收活动。

创建 websocket 后,我​​调用 on message 事件以获取来自 Bot B 的消息,但我需要使用 await context.sendActivity(MessageFactory.text...< /p>

            [...]
            response = await axios.post(url, null, config);
            ws = new WebSocket(response.data.streamUrl);

            ws.on('message', function incoming(data) {
              [...]
            }

提前致谢。

1 个答案:

答案 0 :(得分:0)

请查看 80.skills-simple-bot-to-bot 示例以获取有关如何连接两个机器人的指导。该示例演示了一个“root bot”(您的 Bot A)调用“skill bot”(您的 Bot B)并在将控制权返回给 root bot 之前执行对话。会话 ID 通过使用 SkillConversationIdFactory 跨根和技能机器人维护。

有关设置和使用技能的其他信息,请参阅 Implement a skill 文档。