如何从机器人向用户发送多个响应

本文关键字:响应 用户 机器人 | 更新日期: 2024-09-08 11:51:41

我正在使用Microsoft Bot Framework,并试图向用户发送多个响应,但不确定如何从nodejs中执行此操作。我可以从C#中做到这一点。

C#代码示例

var connector = new ConnectorClient();
connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("Yo, I heard you 1.", "en"));
connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("Yo, I heard you 2.", "en"));
connector.Messages.SendMessage(incomingMessage.CreateReplyMessage("Yo, I heard you 3.", "en"));

nodejs中,这会是什么?

我正在尝试运行的nodejs代码示例:

var bot = new builder.TextBot();
bot.add('/', function (session) {
   session.send('Hello World');
   session.send('Hello World'); // won't work.
});
bot.listenStdin();

如何从机器人向用户发送多个响应

确认这个答案:通过nodejs 向客户端发送多个响应

您可能希望通过返回带有响应对象的数组属性来模拟所需的多个响应(解决方案1)。在这种情况下,使用这个库可能会有所帮助:https://github.com/caolan/async如果您使用多个异步函数。

var messages = [];
messages.push('message 1');
messages.push('message 2');
// etc
response.send({all: messages});

然而,如果你不能这样做,所以我推荐解决方案3,因为它会让你的代码更干净&大多数复杂的web应用程序都使用websocket,使网站不需要刷新任何需要检索的新数据。

一个常用的websocket库是socketio:http://socket.io/get-started/chat/

我不会干扰解决方案2,除非功能非常复杂,并且需要客户端的确认。在这种情况下,您仍然可以使用解决方案3。

相关文章: