2016-04-15 58 views
0

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

我想session.send(“短信”),这似乎结束会话就在那里@ Wjdavis5 –

+0

请的NodeJS代码添加到这个问题。您需要我们帮助解决您节点应用程序的问题,但您提供了c#代码片段。 – Wjdavis5

+0

@ Wjdavis5,谢谢你的建议,我已经做了修改。 –

回答

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.