This is the Redis store adapter for the botmaster-session-ware middleware.
yarn add botmaster-session-ware-redis-store
or with npm
npm install --save botmaster-session-ware-redis-store
This package is an adapter for botmaster-session-ware: https://github.com/botmasterai/botmaster-session-ware
Using this adapter along with the botmaster-session-ware middleware will store sessions in redis rather than use the default in memory store which should not be used in production
Parameters
redisSettings
settings
object just a valid ioredis settings object as per: https://github.com/luin/ioredis which is used under the hood. By default, will connect to 127.0.0.1:6379 *
Examples
const Botmaster = require('botmaster');
// Using this socket.io bot class for the sake of the example
const SocketioBot = require('botmaster-socket.io');
const SessionWare = require('botmaster-session-ware');
const SessionWareRedisStore = require('botmaster-session-ware-redis-store');
const botmaster = new Botmaster();
botmaster.addBot(new SocketioBot({
id: 'botId',
server: botmaster.server,
}));
// declaring middleware
botmaster.use({
type: 'incoming',
name: 'my-awesome-middleware',
controller: async (bot, update) => {
// this will be {} on the first call from a certain user
// and will contain the last message upon all the next iterations
console.log(update.session);
update.session.lastMessage = update.message;
}
})
// This will make our context persist throughout different messages from the
// same user
const sessionWare = new SessionWare({ adapter: new SessionWareRedisStore() });
botmaster.useWrapped(sessionWare.incoming, sessionWare.outgoing);
Get or create a session with the id.
Parameters
id
String a unique id for the session
Returns Promise evaluates to an object that is the session
Update a session in the storage.
Parameters
Returns Promise resolves when the session has been saved