【发布时间】:2018-06-23 20:34:48
【问题描述】:
机器人状态 API 已弃用。请参考https://aka.ms/I6swrh了解如何更换为自己的存储。有谁知道是什么问题以及如何配置?是本地存储问题吗?
【问题讨论】:
机器人状态 API 已弃用。请参考https://aka.ms/I6swrh了解如何更换为自己的存储。有谁知道是什么问题以及如何配置?是本地存储问题吗?
【问题讨论】:
在以前的 botbuilder 版本中,微软为机器人提供了一个状态 API。 state api 如你所料管理机器人的状态;诸如用户数据、对话数据、对话数据等。
他们已经弃用了这个 API,并提供了一种方法,您可以实现自己的存储适配器,或者实际上我们可用的包来实现。
botbuilder 模块提供内存存储,在 bot 运行时显然很好,但如果 bot 崩溃就会丢失,并且不适合在多台机器上对 bot 进行负载平衡。
我倾向于将内存存储用于本地开发,而在生产中使用不同的适配器将其切换出来。
const bot = new builder.UniversalBot(connector, [..waterfall steps..])
.set('storage', new builder.MemoryBotStorage())
但是,还有其他可用的存储适配器
Microsoft 包botbuilder-azure 提供表存储、CosmosDB 存储和 SQL 存储。
我倾向于将以下软件包 botbuilder-storage 与 DynamoDB 适配器一起使用。它还提供 Redis 和 MongoDB 适配器。
状态管理在这里也有很好的记录
https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-state
【讨论】:
需要手动设置内存来解决这个问题:
var bot = new builder.UniversalBot(connector, {
storage: new builder.MemoryBotStorage()
});
【讨论】: