首页 > 解决方案 > 将数据从机器人发送到客户端

问题描述

我目前在客户端使用 react.js,在服务器端使用 node.js。Webchat 客户端使用直线与机器人通信。有没有办法将数据从机器人发送到客户端?

这里的数据只是一个消息数组。我希望用以前的对话消息初始化机器人。我尝试了 sendConversationHistory()方法,但这似乎在部署时效果不佳。因此,我正在考虑从数据库中获取消息,然后将这些获取的消息发送给客户端。

我遇到了反向通道方法,我们可以从客户端发布活动。我计划从 Webchat 客户端发布一个名为 getHistory() 的活动,当服务器侦听此活动时,它从数据库中获取消息并将它们作为对客户端的响应。客户端读取此响应并相应地呈现。我计划将数据从机器人发送到客户端,但我不确定用于从机器人发送此数据的正确方法和语法。

客户端:

let messages;
function getMessages()  {
botConnection
    .postActivity({type: "event", value: "", from: {id: "me" }, name: "getHistory"})
    .subscribe(res => messages = res);
}

我不确定我将如何处理服务器端。

bot.on("event", function (event) {
let fetchedMessages = [];
fetchedMessages = fetchConversations(); /*a method which fetches the messages from the database*/
bot.send(fetchedMessages) ; /*unsure about this part*/   
}

我不确定如何将fetchedMessages发送到客户端。我希望客户端中的消息变量等于服务器的fetchedMessages。我是 javascript 的初学者并且仍然熟悉 bot 框架。谢谢阅读!

标签: botframeworkchatbotazure-bot-servicedirect-line-botframework

解决方案


要从 bot 向用户发送信息(不是响应),您应该使用主动消息。样品在这里。您可以修改触发器应该是什么,何时发送消息。


推荐阅读