2016-04-15 54 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.