Node.js 具有NodeJs sdk 4.0版的Microsoft Bot框架不允许多用户会话

Node.js 具有NodeJs sdk 4.0版的Microsoft Bot框架不允许多用户会话,node.js,botframework,Node.js,Botframework,我的bot是使用NodeJS和botframework4.0开发的,它使用示例的基本代码,在会话之间保留变量值。 第一个用户填写姓名、电子邮件和电话号码,在下一个会话中使用相同或不同的浏览器值粘贴,看起来nodejs创建了一个单例,或者可能是IIS托管nodejs缓存了这些值,这会给并发用户带来问题 我正在使用基于angular web聊天示例的angular应用程序,使用direct line将随机id传递给bot,我认为bot框架将解决每个用户的唯一会话,但它不会发生 需要帮助,我被困了好几

我的bot是使用NodeJS和botframework4.0开发的,它使用示例的基本代码,在会话之间保留变量值。 第一个用户填写姓名、电子邮件和电话号码,在下一个会话中使用相同或不同的浏览器值粘贴,看起来nodejs创建了一个单例,或者可能是IIS托管nodejs缓存了这些值,这会给并发用户带来问题

我正在使用基于angular web聊天示例的angular应用程序,使用direct line将随机id传递给bot,我认为bot框架将解决每个用户的唯一会话,但它不会发生

需要帮助,我被困了好几天! 提前谢谢。
Jose

此问题已经解决,问题是直连代码向bot发送了两个不同的id,而不是两个活动中的单个id,并且没有使用UserState对象将数据持久化到某些存储(我使用azure blob存储)而不是内存存储。谢谢

您好,您正在跟踪节点机器人程序的哪个代码示例?如果您可以发布到目前为止尝试过的内容,这将非常有用。您好,variablesHi下面的bot.js模块,bot.js模块这些变量userid、name等保留第一个用户async onTurn(turnContext){If(turnContext.activity.type=='event'){wait turnContext.sendActivity)的值(
内部活动事件
);userId=turnContext.activity.from.id;localTime=turnContext.activity.localTimestamp;wait-turnContext.sendActivity(
内部活动
);wait-turnContext.sendActivity(name+“”+email+“”+phone+“”+userId);const{LuisRecognizer}=require('botbuilder-ai');const{activitypes}=require('botbuilder');const{QnA}=require('./QnA');const{VehicleLookUp}=require('./VehicleLookUp');const{ProvideInfo}=require('./ProvideInfo')const{BlobStorage}=require('botbuilder azure');const{VehicleLookUp}=require('./shared);const DISPATCH_CONFIG='UVS DISPATCH';var dotenv=require('dotenv');var storage;var botUserState;var userId;var isRecurrentUser;var recurrentUserName;let name;let email;let phone;我正在使用直连角度应用程序,并通过“事件”类型的post活动传递了唯一的用户id使用两个变量作为本地时间和本地时区