【问题标题】:Get duration between the bot sending the message and user replying获取机器人发送消息和用户回复之间的持续时间
【发布时间】:2017-06-23 11:18:41
【问题描述】:

首先感谢您在构建和维护此库方面所做的出色工作。 我有一个场景,我需要检查这个人是否在 10 秒内回答。我有一些看起来与此类似的代码,我在第一个瀑布步骤中测量开始时间,在下一个瀑布步骤中测量结束时间,我会在第二个瀑布步骤中找到两者之间的区别。

bot.dialog('/duration', [(session, args)=>{
    session.dialogData.startTime = new Date().getTime()
}, (session, results)=>{
    session.dialogData.endTime = new Date().getTime()
}])

感觉上面的代码不准确。我已经看到了 session.message.timestamp 属性。和上面的代码有什么区别

有没有更好的方法来测量像这样的时差? 在这种情况下,我如何考虑网络延迟? 提前感谢您的回答

【问题讨论】:

    标签: node.js bots botframework chatbot


    【解决方案1】:

    您可以设置发送消息的时间,然后使用消息时间戳重新评估,例如:

    var bot = new builder.UniversalBot(connector, [
        function (session) {
            session.userData.lastMessageSent = new Date();
            builder.Prompts.text(session, 'Send something in 10 seconds or you die.');
        },
        function (session, result) {
            if (session.userData.lastMessageSent) {
                var lastMessageSent = new Date(session.userData.lastMessageSent);
                var lastMessageReceived = new Date(session.message.timestamp);
    
                var diff = lastMessageReceived - lastMessageSent / 1000;
    
                if (diff >= 10) {
                    session.send('Game over.');
                } else  {
                    session.send('Good boy!');
                }
            }
        }
    ]);
    

    【讨论】:

    • 或者我们可以使用 dialogData 因为这只对对话框很重要
    • 是的,你是对的。也许使用 dialogData 会更好。
    【解决方案2】:

    一个更好的方法可能是在注册机器人时使用 Application Insights 连接。 通过这种方式,Bot Framework 服务测量您的请求/响应并将时间戳自动存储到 Application Insights 中。

    一旦您copy the instrumentation key 进入机器人注册页面,Application Insights AnalyticscustomEvents 下的事件。

    如果您只是有一个可操作的代码,上面的答案是一个更好的解决方案。

    【讨论】:

    • 这是一个问答游戏,我想要一个 10 秒的超时时间来回答,你怎么看?在我看来,对于像这样有 1000 名玩家在玩问题的事情,仪表化并不是一个好主意
    • 这是由bot框架自动完成的,过程中不涉及代码(c#或node.js)
    • 问题是,如果用户回复时间超过 10 秒,我该如何将用户踢出游戏
    • 在这种情况下,您是对的,但是这个问题的标题具有误导性。我会相应地更新答案。
    猜你喜欢
    • 2020-12-18
    • 2021-06-30
    • 2018-06-13
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2019-07-11
    • 2019-07-27
    相关资源
    最近更新 更多