【问题标题】:How do I prevent messages from arriving out of order in BotFramework Nodejs?如何防止消息在 BotFramework Nodejs 中乱序到达?
【发布时间】:2019-01-09 18:12:39
【问题描述】:

我正在使用 azure bot 框架。我只想在第一条消息发送之后再发送第二条消息。

这里是代码。

session.send("Hi")
   response=store.getRating();
   cards.Herocard(session,builder,response,function(msg){
      sendCard(msg,session);         
  }); 

这里一旦发送“嗨”,那么我只想发送英雄卡。
但有时我面临的问题是先发出卡,然后发出“嗨” 我尝试设置计时器(settimeout)。但这没有意义。它有时也会失败。

有什么方法可以识别它或类似回调/承诺之类的东西。我不确定如何在这种情况下实施相同的操作?

【问题讨论】:

    标签: node.js azure botframework bots azure-bot-service


    【解决方案1】:

    尝试发送您的 HeroCard,方法是在您发送第一封邮件后将其创建为第二封邮件的附件。它应该看起来像这样:

    session.send('Hi');
    var followup = new builder.Message(session);
    followup.attachments([
            new builder.HeroCard(session)
            .title("Hi")
            .subtitle("I'm a herocard")
            .text("i do stuff "+ session.message.text)
    ]);
    session.send(followup);
    

    您还可以单独构建 HeroCard(在此代码块之前或在调用其他构建器函数时),然后在发送后续消息时将其作为附件添加。以这种方式发送应该可以防止消息乱序到达。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-02
      • 2018-06-14
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      相关资源
      最近更新 更多