@deathnaitsa/wa-api 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,34 +2,68 @@
2
2
 
3
3
  Eine minimalistische, stabile WhatsApp Multi-Device API basierend auf Baileys mit erweiterten Session-Management und Statistik-Features.
4
4
 
5
+ ## 📑 Inhaltsverzeichnis
6
+
7
+ - [Status](#-status)
8
+ - [Features](#-features)
9
+ - [Installation](#-installation)
10
+ - [Quick Start](#-quick-start)
11
+ - [ES Modules](#es-modules-empfohlen)
12
+ - [CommonJS](#commonjs)
13
+ - [API Dokumentation](#-api-dokumentation)
14
+ - [Session Management](#-session-management-implementiert)
15
+ - [Nachrichten](#-nachrichten-implementiert)
16
+ - [Media & Stickers](#-media--stickers-implementiert)
17
+ - [Group Management](#-group-management-implementiert)
18
+ - [Advanced Messaging](#-advanced-messaging-implementiert)
19
+ - [Contact Management](#-contact-management-implementiert)
20
+ - [Presence & Typing](#-presence--typing-implementiert)
21
+ - [Poll Messages](#-poll-messages-implementiert)
22
+ - [Status/Stories](#-statusstories-implementiert)
23
+ - [Broadcast Lists](#-broadcast-lists-implementiert)
24
+ - [Message Queue & Rate Limiting](#-message-queue--rate-limiting-implementiert)
25
+ - [Webhook Support](#-webhook-support-implementiert)
26
+ - [Auto-Reconnect](#-auto-reconnect-implementiert)
27
+ - [Events](#-events-implementiert)
28
+ - [Statistiken](#-statistiken-implementiert)
29
+ - [Bot-Beispiel](#-bot-beispiel)
30
+ - [Statistik-System](#-statistik-system)
31
+ - [Architektur](#-architektur)
32
+ - [Technologie](#-technologie)
33
+ - [Performance](#-performance)
34
+ - [Bekannte Einschränkungen](#-bekannte-einschränkungen--design-entscheidungen)
35
+ - [Sicherheit](#-sicherheit)
36
+ - [Lizenz](#-lizenz)
37
+
5
38
  ## ⚠️ Status
6
39
 
7
- **🚧 Work in Progress** - Die API ist funktional und stabil, aber noch nicht feature-complete. Aktive Entwicklung läuft.
40
+ **🎉 Feature-Complete v2.0** - Die API ist stabil, vollständig und production-ready!
8
41
 
9
42
  ### ✅ Implementiert
10
- - Multi-Session Support
11
- - Session Control (Start, Stop, Restart, Pause, Resume)
12
- - Event System (Messages, Connected, Disconnected)
13
- - Statistik-System mit JSON-Persistenz
14
- - Message Parsing mit Mentions & Quoted Messages
15
- - Uptime & Performance Tracking
16
- - **Media Support** (Bilder, Videos, GIF-Playback)
17
- - **Sticker Support** (Bilder, GIFs, Videos → Sticker mit wa-sticker-formatter)
18
- - Media Download
19
- - **Group Management** (Erstellen, Bearbeiten, Teilnehmer verwalten)
20
- - **Advanced Messaging** (Audio, Document, Location, Contact, Reactions)
21
- - **Contact Management** (Kontakte abrufen, Profilbilder, Status)
22
- - **Presence & Typing** (Tipp-Indikatoren, Aufnahme-Status)
23
-
24
- ### 🚧 In Entwicklung
25
- - Message Queue System
26
- - Rate Limiting
27
- - Webhook Support
28
-
29
- ### 📋 Geplant
30
- - Status/Story Features
31
- - Broadcast Lists
32
- - Auto-Reconnect Optionen
43
+ - Multi-Session Support
44
+ - Session Control (Start, Stop, Restart, Pause, Resume)
45
+ - Event System (Messages, Connected, Disconnected)
46
+ - Statistik-System mit JSON-Persistenz
47
+ - Message Parsing mit Mentions & Quoted Messages
48
+ - Uptime & Performance Tracking
49
+ - **Media Support** (Bilder, Videos, GIF-Playback)
50
+ - **Sticker Support** (Bilder, GIFs, Videos → Sticker mit wa-sticker-formatter)
51
+ - Media Download
52
+ - **Group Management** (Erstellen, Bearbeiten, Teilnehmer verwalten)
53
+ - **Advanced Messaging** (Audio, Document, Location, Contact, Reactions)
54
+ - **Contact Management** (Kontakte abrufen, Profilbilder, Status)
55
+ - **Presence & Typing** (Tipp-Indikatoren, Aufnahme-Status)
56
+ - ✅ **Poll Messages** (Umfragen erstellen)
57
+ - **Status/Stories** (Status hochladen)
58
+ - **Broadcast Lists** (Massenversand)
59
+ - ✅ **Message Queue & Rate Limiting** (Queue-System mit Prioritäten)
60
+ - ✅ **Webhook Support** (Externe Integrationen)
61
+ - ✅ **Auto-Reconnect** (Exponential Backoff, Max Retries)
62
+
63
+ ### 📋 Geplante Erweiterungen
64
+ - Message Editing (wenn Baileys unterstützt)
65
+ - Business API Features
66
+ - Multi-Device Sync Improvements
33
67
 
34
68
  ## ✨ Features
35
69
 
@@ -124,6 +158,85 @@ onMessage((msg) => {
124
158
  });
125
159
  ```
126
160
 
161
+ **Message Object Struktur:**
162
+
163
+ Das `msg` Object in `onMessage()` enthält folgende Felder:
164
+
165
+ ```javascript
166
+ {
167
+ // Basis-Informationen
168
+ sessionId: 'bot1', // Session ID
169
+ id: '3EB0XXXXX', // Nachrichten-ID
170
+ from: '4915123456789@s.whatsapp.net', // Chat JID
171
+ fromMe: false, // Vom Bot gesendet?
172
+ name: 'Max Mustermann', // Absender-Name
173
+ message: 'Hallo, wie geht es?', // Nachrichtentext
174
+ timestamp: 1703001234, // Unix Timestamp
175
+
176
+ // Gruppen-Informationen
177
+ isGroup: false, // Ist Gruppenchat?
178
+ participant: '4915123456789@s.whatsapp.net', // Absender in Gruppe
179
+
180
+ // Erweiterte Features
181
+ type: 'conversation', // Nachrichtentyp
182
+ mentions: ['4915987654321@s.whatsapp.net'], // Erwähnte Kontakte (@mentions)
183
+ quoted: { /* quotedMessage Object */ }, // Zitierte Nachricht
184
+
185
+ // Raw Baileys Message (für erweiterte Nutzung)
186
+ raw: { /* vollständiges Baileys message object */ }
187
+ }
188
+ ```
189
+
190
+ **Nachrichtentypen (`msg.type`):**
191
+ - `conversation` - Einfache Textnachricht
192
+ - `extendedTextMessage` - Text mit Links/Mentions
193
+ - `imageMessage` - Bild
194
+ - `videoMessage` - Video
195
+ - `audioMessage` - Audio/Voice
196
+ - `documentMessage` - Dokument
197
+ - `stickerMessage` - Sticker
198
+ - `locationMessage` - Standort
199
+ - `contactMessage` - Kontakt
200
+ - `pollCreationMessage` - Umfrage
201
+
202
+ **Beispiele:**
203
+
204
+ ```javascript
205
+ onMessage(async (msg) => {
206
+ // Text-Nachricht
207
+ if (msg.type === 'conversation' || msg.type === 'extendedTextMessage') {
208
+ console.log(`Text: ${msg.message}`);
209
+ }
210
+
211
+ // Gruppennachricht
212
+ if (msg.isGroup) {
213
+ console.log(`Gruppe: ${msg.from}`);
214
+ console.log(`Von: ${msg.participant}`);
215
+ }
216
+
217
+ // Erwähnungen (@mentions)
218
+ if (msg.mentions && msg.mentions.length > 0) {
219
+ console.log(`Erwähnt: ${msg.mentions.join(', ')}`);
220
+ }
221
+
222
+ // Antwort auf Nachricht (quoted)
223
+ if (msg.quoted) {
224
+ console.log(`Antwortet auf: ${msg.quoted}`);
225
+ }
226
+
227
+ // Media herunterladen
228
+ if (msg.type === 'imageMessage' || msg.type === 'videoMessage') {
229
+ const buffer = await downloadMedia(msg);
230
+ console.log(`Media heruntergeladen: ${buffer.length} bytes`);
231
+ }
232
+
233
+ // Auf Nachricht antworten
234
+ if (msg.message === '!ping') {
235
+ await client.replyMessage(msg.sessionId, msg, 'Pong! 🏓');
236
+ }
237
+ });
238
+ ```
239
+
127
240
  #### ✅ Media & Stickers (Implementiert)
128
241
  ```javascript
129
242
  import {
@@ -262,18 +375,222 @@ console.log({
262
375
  countReceivedMessage('bot1');
263
376
  ```
264
377
 
265
- #### Noch nicht implementiert
378
+ ### Poll Messages (Implementiert)
379
+ ```javascript
380
+ import { sendPoll } from '@deathnaitsa/wa-api';
381
+
382
+ // Umfrage mit Einzelauswahl
383
+ await sendPoll('bot1', 'nummer@s.whatsapp.net',
384
+ 'Was ist deine Lieblingsfarbe?',
385
+ ['Rot', 'Blau', 'Grün', 'Gelb'],
386
+ 1 // Nur 1 Option wählbar
387
+ );
388
+
389
+ // Umfrage mit Mehrfachauswahl
390
+ await sendPoll('bot1', 'groupId@g.us',
391
+ 'Welche Programmiersprachen nutzt du?',
392
+ ['JavaScript', 'Python', 'Java', 'C++', 'Go', 'Rust'],
393
+ 3 // Bis zu 3 Optionen wählbar
394
+ );
395
+ ```
396
+
397
+ ### ✅ Status/Stories (Implementiert)
398
+ ```javascript
399
+ import { uploadStatus, getStatuses } from '@deathnaitsa/wa-api';
400
+
401
+ // Text-Status hochladen
402
+ await uploadStatus('bot1', { text: 'Hallo Welt! 👋' });
403
+
404
+ // Bild-Status hochladen
405
+ await uploadStatus('bot1', {
406
+ image: './status-image.jpg',
407
+ caption: 'Schöner Tag! ☀️'
408
+ });
409
+
410
+ // Video-Status hochladen
411
+ await uploadStatus('bot1', {
412
+ video: './status-video.mp4',
413
+ caption: 'Check this out! 🎥'
414
+ });
415
+
416
+ // Status-Liste abrufen (wenn verfügbar)
417
+ const statuses = await getStatuses('bot1');
418
+ ```
419
+
420
+ ### ✅ Broadcast Lists (Implementiert)
266
421
  ```javascript
267
- // Status/Stories
268
- // await client.sendStory(sessionId, content);
422
+ import { sendBroadcast } from '@deathnaitsa/wa-api';
423
+
424
+ // Broadcast an mehrere Empfänger
425
+ const recipients = [
426
+ '4915123456789@s.whatsapp.net',
427
+ '4915987654321@s.whatsapp.net',
428
+ '4916612345678@s.whatsapp.net'
429
+ ];
269
430
 
270
- // Broadcast Lists
271
- // await client.createBroadcastList(sessionId, name, recipients);
272
- // await client.sendBroadcast(sessionId, broadcastListId, message);
431
+ const results = await sendBroadcast('bot1', recipients, {
432
+ text: '🎉 Wichtige Ankündigung für alle!'
433
+ });
434
+
435
+ // Ergebnisse prüfen
436
+ results.forEach(result => {
437
+ console.log(`${result.recipient}: ${result.success ? '✅' : '❌'}`);
438
+ });
439
+
440
+ // Broadcast mit Medien
441
+ await sendBroadcast('bot1', recipients, {
442
+ image: './announcement.jpg',
443
+ caption: 'Neues Update verfügbar!'
444
+ });
445
+ ```
446
+
447
+ ### ✅ Message Queue & Rate Limiting (Implementiert)
448
+ ```javascript
449
+ import {
450
+ queueMessage,
451
+ setRateLimit,
452
+ getQueueStatus,
453
+ clearQueue,
454
+ pauseQueue,
455
+ resumeQueue
456
+ } from '@deathnaitsa/wa-api';
457
+
458
+ // Rate Limit setzen (30 Nachrichten pro Minute)
459
+ setRateLimit('bot1', 30);
460
+
461
+ // Nachricht mit Priorität zur Queue hinzufügen
462
+ queueMessage('bot1', 'nummer@s.whatsapp.net',
463
+ { text: 'Normale Nachricht' },
464
+ 0 // Priorität: 0 = normal
465
+ );
466
+
467
+ queueMessage('bot1', 'nummer@s.whatsapp.net',
468
+ { text: 'Wichtige Nachricht!' },
469
+ 10 // Priorität: 10 = hoch (wird zuerst gesendet)
470
+ );
471
+
472
+ // Queue Status abrufen
473
+ const status = getQueueStatus('bot1');
474
+ console.log(`Queue: ${status.queueLength} Nachrichten`);
475
+ console.log(`Rate Limit: ${status.rateLimit.count}/${status.rateLimit.limit}`);
476
+
477
+ // Queue verwalten
478
+ clearQueue('bot1'); // Queue leeren
479
+ pauseQueue('bot1'); // Queue pausieren
480
+ resumeQueue('bot1'); // Queue fortsetzen
481
+ ```
482
+
483
+ **Vorteile:**
484
+ - 🚫 Verhindert Spam-Erkennung
485
+ - 📊 Automatisches Rate Limiting
486
+ - 🎯 Prioritäts-basierte Zustellung
487
+ - ⏸️ Pausieren/Fortsetzen möglich
488
+
489
+ ### ✅ Webhook Support (Implementiert)
490
+ ```javascript
491
+ import {
492
+ registerWebhook,
493
+ unregisterWebhook,
494
+ getWebhooks
495
+ } from '@deathnaitsa/wa-api';
496
+
497
+ // Webhook registrieren
498
+ const webhookId = registerWebhook(
499
+ 'https://your-server.com/webhook',
500
+ ['message', 'connected', 'disconnected'], // Events
501
+ 'your-secret-key' // Optional: für Signature Verification
502
+ );
503
+
504
+ console.log(`Webhook registriert: ${webhookId}`);
505
+
506
+ // Webhook entfernen
507
+ unregisterWebhook(webhookId);
508
+
509
+ // Alle Webhooks anzeigen
510
+ const webhooks = getWebhooks();
511
+ console.log(webhooks);
512
+ ```
513
+
514
+ **Webhook Payload:**
515
+ ```json
516
+ {
517
+ "event": "message",
518
+ "data": {
519
+ "sessionId": "bot1",
520
+ "from": "4915123456789@s.whatsapp.net",
521
+ "message": "Hallo!",
522
+ "timestamp": 1703001234567
523
+ },
524
+ "timestamp": 1703001234567
525
+ }
526
+ ```
527
+
528
+ **Signature Verification:**
529
+ ```javascript
530
+ const crypto = require('crypto');
531
+
532
+ function verifyWebhook(payload, signature, secret) {
533
+ const hash = crypto.createHmac('sha256', secret)
534
+ .update(payload)
535
+ .digest('hex');
536
+ return hash === signature;
537
+ }
538
+
539
+ // Im Webhook-Handler:
540
+ const signature = req.headers['x-webhook-signature'];
541
+ const isValid = verifyWebhook(req.body, signature, 'your-secret-key');
542
+ ```
543
+
544
+ ### ✅ Auto-Reconnect (Implementiert)
545
+ ```javascript
546
+ import { setAutoReconnect, getConnectionHealth } from '@deathnaitsa/wa-api';
547
+
548
+ // Auto-Reconnect aktivieren
549
+ setAutoReconnect(
550
+ 'bot1',
551
+ true, // enabled
552
+ 5, // maxRetries
553
+ 2 // backoff multiplier
554
+ );
555
+
556
+ // Verhalten:
557
+ // - 1. Versuch: nach 5 Sekunden
558
+ // - 2. Versuch: nach 10 Sekunden (5 * 2^1)
559
+ // - 3. Versuch: nach 20 Sekunden (5 * 2^2)
560
+ // - 4. Versuch: nach 40 Sekunden (5 * 2^3)
561
+ // - 5. Versuch: nach 80 Sekunden (5 * 2^4)
562
+
563
+ // Connection Health prüfen
564
+ const health = getConnectionHealth('bot1');
565
+ console.log({
566
+ connected: health.connected,
567
+ status: health.status,
568
+ uptime: health.uptime,
569
+ autoReconnect: health.autoReconnect,
570
+ retryCount: health.retryCount,
571
+ maxRetries: health.maxRetries
572
+ });
573
+
574
+ // Events abhören
575
+ client.on('reconnect:failed', ({ sessionId }) => {
576
+ console.log(`${sessionId} konnte nicht wiederverbunden werden`);
577
+ });
578
+ ```
579
+
580
+ **Vorteile:**
581
+ - 📈 Exponential Backoff verhindert Server-Überlastung
582
+ - 🔢 Konfigurierbare Max Retries
583
+ - 🎯 Automatische Wiederverbindung bei Netzwerkfehlern
584
+ - 📊 Connection Health Monitoring
585
+
586
+ #### ❌ Noch nicht implementiert
587
+ ```javascript
588
+ // Message Editing (wartet auf Baileys Support)
589
+ // await client.editMessage(sessionId, messageKey, newText);
273
590
 
274
- // Advanced Features
275
- // await client.queueMessage(sessionId, to, message, priority);
276
- // await client.setRateLimit(sessionId, messagesPerMinute);
591
+ // Business API Features
592
+ // await client.getBusinessCategories();
593
+ // await client.updateBusinessHours();
277
594
  ```
278
595
 
279
596
  ## 🚀 Neue Features in v2.0
@@ -456,17 +773,59 @@ await markChatRead('bot1', 'chatId@s.whatsapp.net', [messageKey1, messageKey2]);
456
773
 
457
774
  ## 🎮 Bot-Beispiel
458
775
 
459
- Siehe `socket.js` für ein vollständiges Bot-Beispiel mit:
460
- - Chat-Assignment System (keine Doppel-Antworten bei mehreren Sessions)
461
- - Command-Lock System (keine Race-Conditions)
462
- - Deutsche Befehle
463
- - **Basis**: !ping, !info, !liste, !stats, !gesamtstats
464
- - **Gruppen**: !gruppeninfo, !gruppenlink, !gruppenname, !gruppenbio, !hinzufügen, !entfernen, !promoten, !demoten
465
- - **Nachrichten**: !ort, !reaktion, !tippen, !aufnehmen
466
- - **Profil & Kontakt**: !profilbild, !status, !kontakt, !meinestatus
467
- - **Session**: !neustart, !pause, !fortsetzen, !stopp, !löschen, !start, !zuweisen, !zuweisungen
468
- - Session-Control Commands
469
- - Latenz-Messung
776
+ Siehe `socket.js` für ein vollständiges Bot-Beispiel mit **50+ Befehlen**:
777
+
778
+ ### Basis-Befehle
779
+ - **!ping** / **!ping all** - Bot & alle Sessions testen
780
+ - **!info** - Nachrichteninfo anzeigen
781
+ - **!liste** - Alle Sessions auflisten
782
+ - **!stats** - Detaillierte Session-Statistiken
783
+ - **!gesamtstats** - Gesamtstatistik aller Sessions
784
+
785
+ ### Gruppen-Befehle
786
+ - **!gruppeninfo** - Infos zur aktuellen Gruppe
787
+ - **!gruppenlink** - Einladungslink der Gruppe
788
+ - **!gruppenname** - Gruppennamen ändern
789
+ - **!gruppenbio** - Gruppenbeschreibung ändern
790
+ - **!hinzufügen** / **!entfernen** - Teilnehmer verwalten
791
+ - **!promoten** / **!demoten** - Admin-Rechte verwalten
792
+
793
+ ### Nachrichten-Befehle
794
+ - **!ort** - Standort senden
795
+ - **!reaktion** - Auf Nachricht reagieren
796
+ - **!tippen** / **!aufnehmen** - Indikatoren anzeigen
797
+ - **!umfrage** - Umfrage erstellen
798
+ - **!broadcast** - Broadcast senden
799
+
800
+ ### Status & Queue
801
+ - **!status** - Status hochladen
802
+ - **!queue** - Nachricht zur Queue hinzufügen
803
+ - **!queuestatus** - Queue Status anzeigen
804
+ - **!clearqueue** - Queue leeren
805
+ - **!ratelimit** - Rate Limit setzen
806
+
807
+ ### Profil & Kontakt
808
+ - **!profilbild** - Profilbild anzeigen
809
+ - **!status** - Status abrufen
810
+ - **!kontakt** - Kontaktinfo anzeigen
811
+ - **!meinestatus** - Eigenen Status ändern
812
+
813
+ ### Verbindung
814
+ - **!autoreconnect** - Auto-Reconnect aktivieren
815
+ - **!health** - Verbindungs-Status prüfen
816
+
817
+ ### Session-Verwaltung
818
+ - **!neustart** / **!pause** / **!fortsetzen** / **!stopp** - Session Control
819
+ - **!löschen** - Session-Daten löschen
820
+ - **!start** - Neue Session starten
821
+ - **!zuweisen** - Chat einer Session zuweisen
822
+ - **!zuweisungen** - Alle Zuweisungen anzeigen
823
+
824
+ **Features:**
825
+ - ✅ Chat-Assignment System (keine Doppel-Antworten)
826
+ - ✅ Command-Lock System (keine Race-Conditions)
827
+ - ✅ Latenz-Messung
828
+ - ✅ Error-Handling
470
829
 
471
830
  ## 📊 Statistik-System
472
831
 
@@ -567,34 +926,40 @@ wa_credentials/ # Session-Daten
567
926
 
568
927
  ## 🛠️ Bekannte Einschränkungen & Design-Entscheidungen
569
928
 
570
- ### Nicht implementiert (Stand: Dezember 2024)
571
- - ❌ Status/Story Features (Upload/View/Delete Stories)
572
- - ❌ Broadcast Lists
573
- - ❌ Auto-Reconnect (bewusst einfach gehalten)
574
- - ❌ Message Queue/Rate Limiting
575
- - Webhook Support
576
- - Poll Messages
577
- - Chat Archive/Mute/Pin Features
578
-
579
- ### Neu implementiert in v2.0
580
- - ✅ Group Management (Complete)
581
- - ✅ Advanced Messaging (Audio, Document, Location, Contact, Reactions)
582
- - ✅ Contact Management (Profile Pictures, Status, Block/Unblock)
583
- - ✅ Presence & Typing Indicators
584
- - ✅ Profile Updates (Status, Name, Picture)
929
+ ### Was ist NICHT implementiert
930
+ - ❌ Message Editing (wartet auf Baileys Support)
931
+ - ❌ Business API erweiterte Features
932
+ - ❌ Chat Archive/Mute/Pin über API (manuell möglich)
933
+
934
+ ### Vollständig implementiert in v2.0 ✅
935
+ - Group Management (Complete - 12 Funktionen)
936
+ - Advanced Messaging (Complete - 6 Funktionen)
937
+ - ✅ Contact Management (Complete - 7 Funktionen)
938
+ - Presence & Typing (Complete - 7 Funktionen)
939
+ - ✅ Poll Messages (Complete)
940
+ - ✅ Status/Stories (Complete)
941
+ - ✅ Broadcast Lists (Complete)
942
+ - ✅ Message Queue & Rate Limiting (Complete - 6 Funktionen)
943
+ - ✅ Webhook Support (Complete - 3 Funktionen)
944
+ - ✅ Enhanced Auto-Reconnect (Complete mit Exponential Backoff)
945
+
946
+ **Total: 60+ Funktionen implementiert!**
585
947
 
586
948
  ### Design-Philosophie
587
- - **Einfachheit über Features** - Lieber stabil als feature-reich
588
- - **Kein Auto-Reconnect** - Manuelles Management für mehr Kontrolle
589
- - **Minimale Dependencies** - Nur Baileys, Pino, QRCode-Terminal, wa-sticker-formatter
949
+ - **Feature-Complete über Minimalismus** - Alle wichtigen Features implementiert
950
+ - **Production-Ready** - Robustes Error-Handling und Rate Limiting
951
+ - **Dual Package Support** - CommonJS + ES Modules
590
952
  - **Event-Driven** - Keine Polling, nur Events
591
953
  - **Map-basiert** - Schnelle Session-Lookups
954
+ - **Obfuskiert** - Source Code geschützt
592
955
 
593
956
  ### Performance-Charakteristiken
594
957
  - ✅ Sehr schnelle Session-Switches
595
- - ✅ Geringer Memory-Footprint (~50-80MB pro Session)
958
+ - ✅ Geringer Memory-Footprint (~50-100MB pro Session)
596
959
  - ✅ Keine Blocking Operations
597
- - ⚠️ Kein Built-in Rate Limiting (muss selbst implementiert werden)
960
+ - Built-in Rate Limiting
961
+ - ✅ Queue System für Mass-Messaging
962
+ - ✅ Auto-Reconnect mit Exponential Backoff
598
963
 
599
964
  ## 🔒 Sicherheit
600
965