正如Microsoft Bot Framework的文档中所述,它们具有不同类型的数据。其中之一是dialogData,privateConversationData,conversationData和userData。
默认情况下,似乎userData应该准备好处理跨节点的持久性,但是dialogData应该用于临时数据。
正如其中所说:https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-waterfall
如果机器人分布在多个计算节点上,则每一步都是如此 瀑布可以由不同的节点处理,因此它是 将机器人数据存储在适当的数据包中非常重要
所以,基本上,如果我有两个节点,我应该如何/为什么要使用dialogData,因为我不能保证它会跨节点保存?看来如果你有多个节点,你应该只使用userData。
答案 0 :(得分:1)
我已经要求文档团队删除句子的最后一部分:“因此将机器人数据存储在适当的数据包中非常重要”。这是误导。 Bot Builder是安静和无国籍的。 dialogData,privateConversationData,conversationData和userData中的每一个都存储在State Service中:因此任何“计算节点”都能够从任何这些对象中检索数据。
请注意:默认的连接器状态服务仅用于原型设计,不应与生产机器人一起使用。请使用Azure Extensions或实现自定义状态客户端。
此博文可能也会有所帮助:Saving State data with BotBuilder-Azure in Node.js