我正在使用使用NodeJS SDK的Microsoft Bot Framework V4开发应用程序。该机器人使用基本的瀑布对话框对用户进行身份验证,并在后端访问microsoft graph api。我使用很多局部变量来存储瞬态数据,并且不需要维护任何状态。我的问题是
当多个用户使用我的漫游器时,会话会干扰吗? (请注意,我没有使用任何漫游器用户/会话存储。
由于在Azure中仅运行一个bot实例,我是否需要从一边做任何事情来处理多个用户,否则bot框架会自动为我处理吗?
当多个用户尝试访问该bot时,我看到一些不稳定的行为,但不确定问题可能是什么。
答案 0 :(得分:1)
当多个用户使用我的漫游器时,会话会干扰吗? (请注意,我没有使用任何漫游器用户/会话存储。
不。只要:
"I use a lot of local variables to store transient data"
这部分涉及变量是否全部为“全局”。我肯定已经看到这会引起多用户问题。由于在Azure中仅运行一个bot实例,我是否需要从一边做任何事情来处理多个用户,否则bot框架会自动为我处理吗?
通过用户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')
);
如果您认为自己遵循了这些准则,但仍然遇到问题,请发布代码,我们将为您提供进一步的帮助。
答案 1 :(得分:0)
最大的错误可能是使用全局变量。如果您使用的是任何东西,则只需删除它们,然后尝试将这些值传递到step上下文。例如:stepContext.values.yourVariableName =“ value”。
然后您可以在任何步骤中访问它。这样可以解决问题。