-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathtest-client.js
More file actions
64 lines (53 loc) · 1.58 KB
/
test-client.js
File metadata and controls
64 lines (53 loc) · 1.58 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
#!/usr/bin/env node
const io = require('socket.io-client');
const token = process.argv[2];
console.log('🔌 Connecting to http://localhost:1337');
console.log(`🔐 Token: ${token ? 'Yes' : 'No'}\n`);
const socket = io('http://localhost:1337', {
auth: token ? { token } : undefined,
transports: ['websocket', 'polling']
});
socket.on('connect', () => {
console.log('[SUCCESS] Connected:', socket.id);
// Test room join
socket.emit('join-room', 'test-room', (response) => {
console.log('📋 Join room:', response);
});
// Test get rooms
setTimeout(() => {
socket.emit('get-rooms', (response) => {
console.log('📋 My rooms:', response);
});
}, 500);
// Test private message
setTimeout(() => {
socket.emit('private-message', {
to: socket.id,
message: 'Test message'
}, (response) => {
console.log('📨 Private message:', response);
});
}, 1000);
// Disconnect after tests
setTimeout(() => {
console.log('\n[SUCCESS] All tests completed');
socket.disconnect();
process.exit(0);
}, 2000);
});
socket.on('private-message', (data) => {
console.log('📨 Received private message:', data);
});
socket.on('connect_error', (error) => {
console.error('[ERROR] Connection error:', error.message);
process.exit(1);
});
// Listen for content-type events
['article', 'post', 'session'].forEach(ct => {
['create', 'update', 'delete'].forEach(action => {
socket.on(`${ct}:${action}`, (data) => {
console.log(`\n🔔 ${ct}:${action}`, data);
});
});
});
console.log('👂 Listening for events...\n');