Überblick
laravel-bluesky stellt zwei WebSocket-Kommandos zur Verbindung mit Blueskys Echtzeit-Stream bereit.
- Jetstream – Blueskys eigener, vorgefilterter WebSocket-Endpunkt. Leichtgewichtig im JSON-Format.
- Firehose – Der rohe Eventstream des AT Protocols. Empfängt alle Daten im binären DAG-CBOR-Format.
Installation
Für die WebSocket-Funktionen wird Workerman benötigt.Jetstream
Überblick
Jetstream ist ein von Bluesky bereitgestellter, vorgefilterter WebSocket-Dienst. Sie können nach Collection-Typ oder Nutzer-DID filtern und so gezielt nur die benötigten Events empfangen.Start
Collection-Filter
Mit der Option-C beschränken Sie die empfangenen Collections. Mehrfachangabe möglich.
DID-Filter
Mit der Option-D empfangen Sie nur Events bestimmter Nutzer.
Event-Verarbeitung
Das Jetstream-Kommando löst je nach empfangener Nachricht Laravel-Events aus.
Erstellen Sie einen Event-Listener zur Verarbeitung.
Firehose
Überblick
Firehose ist der rohe Eventstream des AT Protocols. Er empfängt sämtliche Record-Operationen im Bluesky-Netzwerk in binärer Form (DAG-CBOR).Das Decodieren von DAG-CBOR erledigt das Paket automatisch. In Event-Listenern erhalten Sie die Daten als gewöhnliches PHP-Array.
Start
Event-Verarbeitung
Auch das Firehose-Kommando verarbeitet Nachrichten über Laravel-Events.Konfiguration
Inconfig/bluesky.php können Sie Zielhosts und Log-Einstellungen anpassen.
.env:
Kombination mit Labeler
Labeler-Server und Jetstream/Firehose lassen sich gemeinsam starten. Daten aus Jetstream oder Firehose können für die Verarbeitung von Labeling-Requests im Labeler genutzt werden.Details zum Labeler finden Sie auf der Labeler-Seite.
Betrieb langlaufender Prozesse
WebSocket-Kommandos sind dauerhaft laufende Prozesse. Verwenden Sie in Produktivumgebungen ein Prozess-Management-Tool wie Supervisor.Supervisor-Konfigurationsbeispiel
/etc/supervisor/conf.d/bluesky-jetstream.conf:
Daemon-Konfiguration in Laravel Forge
Wenn Sie Laravel Forge verwenden, fügen Sie den Daemon im Bereich Daemons hinzu.- Command:
php artisan bluesky:ws start -C app.bsky.feed.post - Directory:
/var/www/html - User:
forge
Konfiguration als Hintergrundprozess in Laravel Cloud
Die WebSocket-Kommandos verbinden sich als WebSocket-Clients mit den Bluesky-Streams und funktionieren daher auch in Laravel Cloud. Konfigurieren Sie sie als Hintergrundprozess (Custom Worker) in Laravel Cloud. Fügen Sie in der Hintergrundprozess-Konfiguration von Laravel Cloud einen Custom Worker hinzu. Für Jetstream:Prozessstopps und Neustarts beim Deployment übernimmt Laravel Cloud automatisch. Außer der Hintergrundprozess-Konfiguration ist keine weitere Einrichtung nötig.
Hinweise
- Beendet sich der Prozess unerwartet, wird er über
autorestart=trueautomatisch neu gestartet. - Um Memory-Leaks vorzubeugen, sollten Sie regelmäßige Neustarts in Erwägung ziehen.
- Bei Firehose mit hohem Nachrichtenaufkommen empfiehlt sich, die Verarbeitung im Listener asynchron (über einen Queue-Job) zu erledigen.
Source: src/Console/WebSocket