【问题标题】:Microsoft Bot Framework multiple usersMicrosoft Bot Framework 多用户
【发布时间】:2023-04-08 11:53:02
【问题描述】:

我正在使用 NodeJS SDK 使用 Microsoft Bot Framework V4 开发应用程序。该机器人使用基本的瀑布对话框对用户进行身份验证,并在后端访问 microsoft graph api。我使用很多局部变量来存储瞬态数据,不需要维护任何状态。我的问题是

  1. 当多个用户使用我的机器人时,会话会干扰吗? (请注意,我没有使用任何机器人用户/对话存储。

  2. 由于只有一个机器人实例在 Azure 中运行,我是否需要从我身边做任何事情来处理多个用户,还是机器人框架会自动为我处理?

当多个用户尝试访问机器人但不确定问题可能是什么时,我看到了一些不稳定的行为。

【问题讨论】:

    标签: node.js botframework


    【解决方案1】:

    当多个用户使用我的机器人时,会话会干扰吗? (请注意,我没有使用任何机器人用户/对话存储。

    没有。只要:

    1. 用户有不同的用户 ID
    2. 您遵循良好的编码习惯。 "I use a lot of local variables to store transient data" 这部分有点担心变量是否完全是“全局的”。我肯定已经看到这会导致多用户问题。

    由于只有一个机器人实例在 Azure 中运行,我是否需要从我这边做任何事情来处理多个用户,还是机器人框架会自动为我处理?

    通过用户 ID 自动处理。大多数频道会自动设置用户 ID。较新版本的 WebChat 应提供随机用户 ID。但是,请确保您不会意外地使用以下内容设置静态:

    window.WebChat.renderWebChat(
                {
                   directLine: window.WebChat.createDirectLine({
                      token: 'YOUR_DIRECT_LINE_TOKEN'
                   }),
                   userID: 'A_Static_Id', // DO NOT DO THIS
                },
                document.getElementById('webchat')
             );
    

    如果您认为自己遵循了这些准则但仍然遇到问题,请发布您的代码,我可以提供进一步的帮助。

    【讨论】:

      【解决方案2】:

      一个最大的错误可能是使用全局变量。如果您正在使用任何,那么只需删除它们并尝试将这些值传递给步骤上下文。例如:stepContext.values.yourVariableName = “value”。

      然后您可以在任何步骤中访问它。这样就可以解决问题了。

      【讨论】:

        猜你喜欢
        • 2018-04-22
        • 1970-01-01
        • 2023-03-11
        • 2021-05-24
        • 1970-01-01
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 2018-12-29
        相关资源
        最近更新 更多