redis-baileys
v1.0.1
Published
Save your baileys session in redisdb using this package
Downloads
15
Maintainers
Keywords
Readme
Redis-Baileys
🌟 Features
- 🚀 Fast and efficient storage of Baileys sessions
- 🔒 Secure data management with Redis
- 🔄 Easy integration with existing Baileys projects
- 📦 TypeScript support
- 🛠 Simple API for session management
📦 Installation
npm install redis-baileys
or
yarn add redis-baileys
🚀 Usage
TypeScript
import { useRedisAuthState } from 'redis-baileys';
import { Boom } from '@hapi/boom';
import makeWASocket, { DisconnectReason } from '@whiskeysockets/baileys';
async function connectToWhatsApp() {
const redisConfig = {
password: 'your_redis_password',
host: 'your_redis_host',
port: 6379,
};
const { state, saveCreds } = await useRedisAuthState(redisConfig, 'your_session_id');
const sock = makeWASocket({
auth: state,
printQRInTerminal: true,
});
sock.ev.on('connection.update', (update) => {
const { connection, lastDisconnect } = update;
if (connection === 'close') {
const shouldReconnect = (lastDisconnect?.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut;
console.log('connection closed due to ', lastDisconnect?.error, ', reconnecting ', shouldReconnect);
if (shouldReconnect) {
connectToWhatsApp();
}
} else if (connection === 'open') {
console.log('opened connection');
}
});
sock.ev.on('creds.update', saveCreds);
}
connectToWhatsApp();
JavaScript
const { useRedisAuthState } = require('redis-baileys');
const { Boom } = require('@hapi/boom');
const makeWASocket = require('@whiskeysockets/baileys').default;
async function connectToWhatsApp() {
const redisConfig = {
password: 'your_redis_password',
host: 'your_redis_host',
port: 6379,
};
const { state, saveCreds } = await useRedisAuthState(redisConfig, 'your_session_id');
const sock = makeWASocket({
auth: state,
printQRInTerminal: true,
});
sock.ev.on('connection.update', (update) => {
const { connection, lastDisconnect } = update;
if (connection === 'close') {
const shouldReconnect = (lastDisconnect?.error instanceof Boom) && lastDisconnect.error.output.statusCode !== DisconnectReason.loggedOut;
console.log('connection closed due to ', lastDisconnect?.error, ', reconnecting ', shouldReconnect);
if (shouldReconnect) {
connectToWhatsApp();
}
} else if (connection === 'open') {
console.log('opened connection');
}
});
sock.ev.on('creds.update', saveCreds);
}
connectToWhatsApp();
🛠 API
useRedisAuthState(redisConfig, sessionId)
Creates and manages the authentication state using Redis.
redisConfig
: An object containing Redis connection details (password, host, port).sessionId
: A unique identifier for the session.
Returns an object with:
state
: The current authentication state.saveCreds
: A function to save credentials.deleteSession
: A function to delete the current session.
📚 Documentation
For more detailed documentation, please visit our Wiki.
🤝 Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
🙏 Acknowledgements
- Baileys - The awesome WhatsApp Web API library
- Redis - The open-source, in-memory data store used by millions of developers