Overzicht
laravel-bluesky biedt twee WebSocket-commands om verbinding te maken met de realtime streams van Bluesky.
- Jetstream — Het eigen, voorgefilterde WebSocket-endpoint van Bluesky. Lichtgewicht, in JSON-formaat.
- Firehose — De ruwe eventstream van het AT Protocol. Ontvangt alle data in binair DAG-CBOR-formaat.
Installatie
Voor de WebSocket-functionaliteit is Workerman nodig.Jetstream
Overzicht
Jetstream is de voorgefilterde WebSocket-service van Bluesky. Je kunt filteren op collectietype en gebruikers-DID, zodat je efficiënt alleen de events ontvangt die je nodig hebt.Starten
Collectiefilter
Met de optie-C beperk je welke collecties je ontvangt. Je kunt er meerdere opgeven.
DID-filter
Met de optie-D ontvang je alleen events van specifieke gebruikers.
Events verwerken
Het Jetstream-command stuurt Laravel-events uit op basis van het type van het ontvangen bericht.
Maak een eventlistener om de events te verwerken.
Firehose
Overzicht
De Firehose is de ruwe eventstream van het AT Protocol. Je ontvangt alle recordbewerkingen op het Bluesky-netwerk in binair (DAG-CBOR-)formaat.Het decoden van DAG-CBOR doet het pakket automatisch. In je eventlisteners ontvang je de data als gewone PHP-arrays.
Starten
Events verwerken
Ook het Firehose-command verwerkt berichten via Laravel-events.Configuratie
Inconfig/bluesky.php kun je de host en de loginstellingen wijzigen.
.env:
Combineren met de Labeler
Je kunt de Labeler-server en Jetstream/Firehose tegelijk starten. De data van Jetstream of de Firehose kun je gebruiken bij het verwerken van labelverzoeken die de Labeler ontvangt.Zie de Labeler-pagina voor details over de Labeler.
Langdurig draaiende processen beheren
De WebSocket-commands zijn processen die lang blijven draaien. Gebruik in productie een procesmanager zoals Supervisor.Voorbeeld van een Supervisor-configuratie
/etc/supervisor/conf.d/bluesky-jetstream.conf:
Daemon-configuratie in Laravel Forge
Gebruik je Laravel Forge, voeg dan een daemon toe via de sectie Daemons.- Command:
php artisan bluesky:ws start -C app.bsky.feed.post - Directory:
/var/www/html - User:
forge
Achtergrondprocessen instellen op Laravel Cloud
De WebSocket-commands verbinden als WebSocket-client met de streams van Bluesky en werken daarom ook op Laravel Cloud. Stel ze in als achtergrondproces (custom worker) van Laravel Cloud. Voeg in de achtergrondprocesinstellingen van Laravel Cloud een Custom Worker toe. Voor Jetstream:Het stoppen en herstarten van processen bij een deploy wordt volledig automatisch afgehandeld door Laravel Cloud. Buiten het instellen van het achtergrondproces is er geen extra configuratie nodig.
Aandachtspunten
- Als een proces onverwacht stopt, wordt het met
autorestart=trueautomatisch herstart. - Overweeg periodieke herstarts om geheugenlekken te voorkomen.
- Bij de Firehose, die enorme aantallen berichten ontvangt, wordt aanbevolen om de verwerking in je listener asynchroon te maken (met een queue-job).
Source: src/Console/WebSocket