我正在构建一个使用对话框与客户端进行交互的Bot,现在,我使用 IDialogContext 中的 PrivateConversationData 进行存储客户端开始与我的Bot聊天时的一些参数。但是,正如我已阅读User State Document,他们已经说过:
您可以在每个商店中为用户或对话存储的最大数据量为32 KB。例如,您可以在通道ABC上为用户A存储32 KB的数据,在通道ABC上的私人对话中为用户A存储32 KB的数据,在通道ABC上为对话1存储32 KB的数据。
那么如果许多客户端同时与我的Bot聊天并且我的代码存储了一些参数来查询我的数据库会发生什么呢?如果下一个客户端与我的bot通信并设置一些具有相同名称的参数,我的数据是否会丢失太?我很困惑,每个客户端与机器人聊天是否都有自己的 PrivateConversationData ,或者所有与Bot连接的客户端都将访问唯一一个 PrivateConversationData
答案 0 :(得分:1)
PrivateConversationData
商店对于关键用户+对话而言是唯一的,所以不,您的客户只能访问一个PrivateConversationData
。
如果要在特定于会话的频道上保存用户的状态数据,请使用私人对话数据存储
但是,根据您的写作,似乎在您的案例中使用UserData
商店会更好,因为您存储在数据包中的数据似乎并不特定于对话。
如果要在不特定于会话的频道上保存用户的状态数据,请使用用户数据存储
请查看State sample以查看此概念。此外,如果您要为州使用自定义存储空间,请查看Custom State示例。