Zum Hauptinhalt springen

Was ist LaserStream WebSocket?

LaserStream WebSocket ist die WebSocket-Protokollvariante von LaserStream. Sie stellt die standardmäßigen Solana-JSON-RPC-Subscription-Methoden (accountSubscribe, programSubscribe, logsSubscribe, signatureSubscribe, slotSubscribe, …) sowie Helius-spezifische Erweiterungen wie transactionSubscribe für erweiterte Filterung bereit — alle über denselben einheitlichen wss://mainnet.helius-rpc.com endpoint und dasselbe LaserStream-Backend wie das gRPC-Produkt. WebSockets bieten dir eine dauerhafte Echtzeitverbindung: Statt wiederholt abzufragen, ob sich etwas geändert hat, benachrichtigt dich die Blockchain sofort, wenn etwas passiert.

Real-Time Updates

Erhalte sofort eine Benachrichtigung, wenn sich Solana-Konten ändern, Transaktionen stattfinden oder neue Blöcke erzeugt werden

Efficient Resource Usage

Eine dauerhafte Verbindung statt hunderter wiederholter HTTP requests

Low Latency

Bis zu 200 ms schneller als standardmäßige Agave-RPC-basierte WebSockets, bereitgestellt von LaserStream

Helius Extensions

transactionSubscribe und ein erweiterter accountSubscribe für zusätzliche Filterung auf Basis der standardmäßigen Solana-Methoden

Endpoints

WebSockets — sowohl die standardmäßigen Solana-Methoden als auch die Helius-spezifischen Erweiterungen — werden pro Netzwerk über einen einzigen einheitlichen endpoint bereitgestellt: Mainnet: wss://mainnet.helius-rpc.com/?api-key=<API_KEY> Devnet: wss://devnet.helius-rpc.com/?api-key=<API_KEY>

Gatekeeper (Beta)

Teste unser schnellstes WebSocket-Angebot über den neuen Gatekeeper (Beta) endpoint: wss://beta.helius-rpc.com/?api-key=<API_KEY>

Preise und Abrechnung

Die WebSocket-Nutzung wird mit 2 Credits pro 0,1 MB unkomprimierter gestreamter Daten abgerechnet. Das Öffnen einer Verbindung kostet 1 Credit. Für Workloads mit hohem Datenvolumen in Professional-Tarifen bieten Daten-Add-ons monatliche Datenkontingente (5 TB–100 TB) zu planbaren Kosten. Daten-Add-ons können für LaserStream und WebSockets verwendet werden.
Die Helius-spezifischen Methoden transactionSubscribe und accountSubscribe (mit Helius-Filtern) erfordern einen Tarif vom Typ Developer, Business oder Professional. Standardmäßige Solana-Methoden wie programSubscribe, logsSubscribe und signatureSubscribe sind in allen Tarifen verfügbar.

Grundkonzepte

Subscription-Typen

Überwache Änderungen an bestimmten Konten, etwa Wallet-Guthaben, Konten für token oder Programmdaten.Anwendungsfälle:
  • Wallet-Guthaben verfolgen
  • Konten für token überwachen
  • Zustandsänderungen von Smart Contracts
  • Aktualisierungen der NFT-Inhaberschaft
Überwache alle Konten eines bestimmten Programms auf Änderungen.Anwendungsfälle:
  • DEX-Handel überwachen
  • DeFi-Protokolle verfolgen
  • Aktivitäten auf NFT-Marktplätzen
  • Änderungen an Gaming-Assets
Erhalte eine Benachrichtigung, wenn bestimmte Transaktionen bestätigt werden oder bestimmte Konten erwähnen.Anwendungsfälle:
  • Zahlungsbestätigungen
  • Transaktionsstatus verfolgen
  • Multi-Signatur-Freigaben
  • Ausführung von Verträgen überwachen
Überwache den Fortschritt der Blockchain und die Finalität für jeden slot.Anwendungsfälle:
  • Block-Explorer-Anwendungen
  • Netzwerkzustand überwachen
  • Konsens verfolgen
  • Performance-Analysen

Commitment-Stufen

Du musst die commitment-Stufen verstehen, um zuverlässige Anwendungen zu entwickeln:
Am schnellsten – Transaktion wurde von einem Validator verarbeitet, aber nicht bestätigt
  • Latenz: ~400 ms
  • Risiko: Kann verworfen oder neu angeordnet werden
  • Geeignet für: Echtzeitaktualisierungen der Benutzeroberfläche (mit Vorsicht)
Möchtest du mehr über commitment-Stufen erfahren? Lies unseren ausführlichen Blogbeitrag: Solana-Commitment-Stufen verstehen

Verfügbare WebSocket-Methoden

Helius unterstützt alle Solana-WebSocket-Subscription-Methoden sowie Helius-spezifische Erweiterungen. Alle Methoden verwenden denselben wss://mainnet.helius-rpc.com endpoint.

Helius-Erweiterungen

Zwei Methoden bieten umfangreichere Filter als der Solana-Standard:
  • transactionSubscribe — abonniere Transaktionen anhand von Listen einzuschließender, auszuschließender und erforderlicher Konten, Abstimmungs- und Fehler-Flags sowie einer bestimmten Signatur
  • accountSubscribe — Helius ergänzt die standardmäßige Struktur von accountSubscribe um erweiterte Filter

Standardmäßige Solana-Methoden

accountSubscribe, blockSubscribe, logsSubscribe, programSubscribe, rootSubscribe, signatureSubscribe, slotSubscribe, slotsUpdatesSubscribe, voteSubscribe und die zugehörigen *Unsubscribe-Paare.

Complete API Reference

Entdecke alle über 18 WebSocket-Methoden. Jede Methode enthält detaillierte Parameter, response-Formate und Beispiele.

Logik für erneute Verbindungen implementieren

WebSocket-Verbindungen können aus verschiedenen Gründen getrennt werden, etwa wegen Netzwerkproblemen, Serverwartungen oder vorübergehenden Ausfällen. Produktionsanwendungen müssen eine Logik für erneute Verbindungen implementieren, um zuverlässig zu funktionieren.

Warum Verbindungen getrennt werden

  • Probleme mit der Internetverbindung
  • WLAN-Wechsel auf Mobilgeräten
  • timeouts durch Unternehmens-Firewalls
  • Routing-Änderungen beim Internetanbieter
  • Geplante Wartungsfenster
  • Neustarts von Load-Balancern
  • Updates für RPC node
  • Temporärer Überlastungsschutz
  • Browser-Tabs im Hintergrund
  • Angehaltene mobile Apps
  • Energiespar- oder Ruhezustand des Computers
  • Prozessabstürze oder -neustarts

Verbindungsabbrüche erkennen

Strategien für erneute Verbindungen

Logik für erneute Verbindungen testen

Für den Produktionseinsatz unerlässlich: Eine korrekte Logik für erneute Verbindungen ist für Produktionsanwendungen unverzichtbar. WebSocket-Verbindungen werden getrennt. Plane dafür, teste es und überwache es im Produktionseinsatz.

Fehlerbehebung

Symptome: WebSocket kann anfangs keine Verbindung herstellenLösungen:
  • Prüfe, ob dein API key korrekt ist und über genügend Credits verfügt
  • Prüfe das Format der endpoint-URL: wss://mainnet.helius-rpc.com?api-key=YOUR_KEY
  • Stelle sicher, dass deine Firewall WebSocket-Verbindungen über Port 443 zulässt
  • Teste zuerst mit einem einfachen Ping, ob die grundlegende Verbindung funktioniert
Symptome: Die Verbindung wird alle paar Minuten getrenntLösungen:
  • WebSockets haben einen 10-minütigen Inaktivitäts-Timer. Sende mindestens einmal pro Minute einen Ping, um die Verbindung aufrechtzuerhalten. Siehe dazu die Beispiele für erneute Verbindungen oben und die WebSocket-FAQ
  • Implementiere einen korrekten Ping/Pong-Heartbeat (wie in den Beispielen für erneute Verbindungen oben gezeigt)
  • Prüfe die Stabilität deines Netzwerks und die Einstellungen deiner Unternehmens-Firewall
  • Überwache die Anzahl deiner Subscriptions. Zu viele können Instabilität verursachen
  • Stelle sicher, dass du den Lebenszyklus der Verbindung korrekt verwaltest
Symptome: Erwartete Subscription-Aktualisierungen werden nicht empfangenLösungen:
  • Prüfe, ob deine Subscription bestätigt wurde (siehe response)
  • Stelle sicher, dass im überwachten Konto oder Programm tatsächlich Aktivität stattfindet
  • Überwache den Verbindungsstatus. Fehlende Nachrichten weisen häufig auf Verbindungsabbrüche hin
Symptome: Langsame Nachrichtenübermittlung und verzögerte AktualisierungenLösungen:
  • Verwende das commitment „confirmed“ statt „finalized“
  • Reduziere die Anzahl aktiver Subscriptions
  • Optimiere deine Logik zur Nachrichtenverarbeitung
  • Erwäge mehrere Verbindungen, um die Last zu verteilen
  • Prüfe die Qualität deiner Netzwerkverbindung
Symptome: Der Arbeitsspeicherverbrauch der Anwendung steigt mit der ZeitLösungen:
  • Bereinige Subscriptions ordnungsgemäß
  • Entferne Event-Listener, wenn Komponenten ausgehängt werden
  • Lösche Nachrichtenprotokolle regelmäßig
  • Überwache die Anzahl der Subscriptions und setze Grenzwerte durch
  • Verwende nach Möglichkeit schwache Referenzen für Callback-Funktionen

Migration von standardmäßigem RPC

Wenn du derzeit HTTP-Polling verwendest, kannst du so zu WebSockets migrieren:

Erweiterte Funktionen

Wenn deine Apps noch umfangreichere Funktionen benötigen, solltest du LaserStream gRPC verwenden:

24-Hour Historical Replay

Hole verpasste Daten nach, wenn deine App offline war

Multi-Node Aggregation

Höhere Zuverlässigkeit durch Daten von mehreren Validatoren

Higher Throughput

Verarbeite mehr Subscriptions und höhere Nachrichtenraten

Enterprise Features

Erweiterte Überwachung, Analysen und Datenpipelines

Erste Schritte

Bereit für die ersten Schritte? Praktische Beispiele und eine schrittweise Implementierung findest du in unserer WebSocket-Schnellstartanleitung.

Anleitungen

Schrittweise Tutorials mit ausführbarem Code findest du auf der Seite LaserStream-WebSocket-Anleitungen.