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

时间:2016-04-15 13:39:51

标签: c# node.js botframework

我正在使用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();

1 个答案:

答案 0 :(得分:0)

查看此答案:send multiple responses to client via nodejs

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

var messages = [];
messages.push('message 1');
messages.push('message 2');
// etc

response.send({all: messages});

但是,如果你不能这样,那么我会推荐解决方案3 ,因为它会让你的代码更清洁&最复杂的Web应用程序无论如何都使用websockets来使网站不需要刷新任何需要检索的新数据。

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

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