如何会话数据存储到机器人制造商自定义存储
我使用节点JS打造聊天机器人。
我目前存储会话数据到微软默认的存储,其中有64K每用户会话限制。我想用我自己的存储来存储会话数据。 Here是我得到的帮助微软开发。
我可以存储在文件数据库和Azure的表。
尽管如此,我很困惑。我们将如何实现IStorageClient
接口在自己的数据库来存储?
每当我设置session.UserData.name=""
应该在自己的数据库存储。
我不知道如果我有问题;我明白你正在尝试做的,似乎你有全部到位件。
首先,你必须实现IStorageClient接口。在您的实现,你写存储在您的数据库对事物的逻辑。
您可以查看DocumentDB和Azure Tables实现,以获得如何可以实施的想法。
现在的问题是..如果您的自定义存储在Azure中......,那么你可能能够使用AzureBotStorage与您的自定义存储客户端。您实例化您的自定义存储客户端,传递给AzureBotStorage
参考,并设置在机器人的存储
// Azure DocumentDb State Store
var docDbClient = new azure.DocumentDbClient({
host: process.env.DOCUMENT_DB_HOST,
masterKey: process.env.DOCUMENT_DB_MASTER_KEY,
database: process.env.DOCUMENT_DB_DATABASE,
collection: process.env.DOCUMENT_DB_COLLECTION
});
var botStorage = new azure.AzureBotStorage({ gzipData: false }, docDbClient);
// Set Custom Store
bot.set('storage', botStorage);
如果您的自定义存储在任何其他地方比天青,然后AzureBotStorage
可能不会为你工作。请注意,我不知道这一点,你必须检查的代码进行确认。从我所看到的,似乎很通用的,所以你可能能够重复使用它,只是落实IStorageClient
。如果不是的话,你将不得不也实现了IBotStorage接口。
最后,AzureBotStorage
正在这样做。它实现IBotStorage
并使用IStorageClient
与实际提供者进行交互。