forked from seejux/waha-whatsapp-mcp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdemo_multi_session.js
More file actions
105 lines (85 loc) Β· 3.45 KB
/
demo_multi_session.js
File metadata and controls
105 lines (85 loc) Β· 3.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/env node
/**
* Demo: Multi-Session Management
* Shows how to work with multiple WhatsApp accounts
*/
import { WAHAClient } from './dist/client/waha-client.js';
import dotenv from 'dotenv';
dotenv.config();
async function demoMultiSession() {
console.log('π WAHA Multi-Session Management Demo\n');
console.log('=' .repeat(60));
const client = new WAHAClient(
process.env.WAHA_BASE_URL,
process.env.WAHA_API_KEY
);
try {
// Step 1: List all sessions
console.log('\nπ Step 1: Listing all sessions\n');
const sessions = await client.listSessions('default', { all: true });
console.log(`Found ${sessions.length} sessions:\n`);
sessions.forEach((session, index) => {
console.log(`${index + 1}. ${session.name}`);
console.log(` Status: ${session.status}`);
if (session.me) {
console.log(` Phone: ${session.me.id}`);
console.log(` Name: ${session.me.pushName}`);
}
console.log();
});
// Step 2: Get detailed info for each session
console.log('=' .repeat(60));
console.log('\nπ Step 2: Detailed session information\n');
for (const session of sessions.slice(0, 3)) { // Just first 3 for demo
try {
const info = await client.getSession(session.name, {});
console.log(`Session: ${session.name}`);
console.log(` Status: ${info.status}`);
if (info.me) {
console.log(` Account: ${info.me.pushName} (${info.me.id})`);
}
// Get chats count
const chats = await client.getChatsOverview(session.name, { limit: 1 });
console.log(` Has chats: ${chats.length > 0 ? 'Yes' : 'No'}`);
console.log();
} catch (error) {
console.log(` β οΈ Error: ${error.message}\n`);
}
}
// Step 3: Demonstrate switching between sessions
console.log('=' .repeat(60));
console.log('\nπ Step 3: Switching between sessions\n');
const activeSessions = sessions.filter(s => s.status === 'WORKING');
if (activeSessions.length >= 2) {
const session1 = activeSessions[0].name;
const session2 = activeSessions[1].name;
console.log(`Querying ${session1}...`);
const chats1 = await client.getChatsOverview(session1, { limit: 1 });
console.log(` β
Got ${chats1.length} chat(s)\n`);
console.log(`Querying ${session2}...`);
const chats2 = await client.getChatsOverview(session2, { limit: 1 });
console.log(` β
Got ${chats2.length} chat(s)\n`);
console.log('β¨ Successfully switched between sessions!');
}
// Summary
console.log('\n' + '=' .repeat(60));
console.log('\nπ Multi-Session Demo Complete!\n');
console.log('Key Capabilities Demonstrated:');
console.log(' β
List all sessions on server');
console.log(' β
Get detailed info for specific sessions');
console.log(' β
Query different sessions independently');
console.log(' β
Switch between sessions seamlessly');
console.log();
console.log('π‘ This enables:');
console.log(' β’ Managing multiple WhatsApp accounts');
console.log(' β’ Bulk operations across accounts');
console.log(' β’ Independent session configuration');
console.log(' β’ Flexible routing and load balancing');
console.log();
} catch (error) {
console.error('β Demo failed:', error.message);
console.error(error);
process.exit(1);
}
}
demoMultiSession();