Panoramica
laravel-bluesky offre due comandi WebSocket per collegarsi agli stream in tempo reale di Bluesky.
- Jetstream — endpoint WebSocket con filtri, proprio di Bluesky. Leggero, in formato JSON.
- Firehose — stream grezzo di eventi di AT Protocol. Riceve tutti i dati in formato binario DAG-CBOR.
Installazione
Per le funzionalità WebSocket è necessario Workerman.Jetstream
Panoramica
Jetstream è il servizio WebSocket con filtraggio fornito da Bluesky. Puoi filtrare per tipo di collezione e DID utente, ricevendo solo gli eventi necessari in modo efficiente.Come avviarlo
Filtro per collezione
Con l’opzione-C restringi le collezioni ricevute. Puoi specificarne più di una.
Filtro per DID
Con l’opzione-D ricevi solo gli eventi di utenti specifici.
Gestione degli eventi
Il comando Jetstream emette eventi Laravel in base al tipo di messaggio ricevuto.
Crea un listener per gestire gli eventi.
Firehose
Panoramica
Firehose è lo stream grezzo di eventi di AT Protocol. Ricevi in formato binario (DAG-CBOR) tutte le operazioni sui record della rete Bluesky.La decodifica DAG-CBOR viene fatta automaticamente dal pacchetto. Negli event listener ricevi i dati come normali array PHP.
Come avviarlo
Gestione degli eventi
Anche il comando Firehose gestisce i messaggi tramite eventi Laravel.Configurazione
Inconfig/bluesky.php puoi modificare l’host di connessione e le impostazioni di logging.
.env:
Combinazione con Labeler
Puoi avviare contemporaneamente il server Labeler e Jetstream / Firehose. Puoi usare i dati di Jetstream o Firehose per gestire le richieste di labeling ricevute dal Labeler.Per i dettagli su Labeler consulta la pagina Labeler.
Gestione dei processi long-running
I comandi WebSocket sono processi che restano attivi a lungo. In produzione usa uno strumento di gestione dei processi come Supervisor.Esempio di configurazione Supervisor
/etc/supervisor/conf.d/bluesky-jetstream.conf:
Configurazione del daemon su Laravel Forge
Se usi Laravel Forge, aggiungi il daemon dalla sezione Daemons.- Command:
php artisan bluesky:ws start -C app.bsky.feed.post - Directory:
/var/www/html - User:
forge
Configurazione dei processi in background su Laravel Cloud
I comandi WebSocket si connettono allo stream di Bluesky come client WebSocket, quindi funzionano anche su Laravel Cloud. Configurali come processi in background (custom worker) di Laravel Cloud. Nelle impostazioni dei processi in background di Laravel Cloud, aggiungi un Custom Worker. Per Jetstream:L’arresto e il riavvio del processo al deploy sono gestiti automaticamente da Laravel Cloud. A parte la configurazione del processo in background non serve nient’altro.
Attenzione
- Se il processo termina inaspettatamente, con
autorestart=truesi riavvia automaticamente. - Per evitare memory leak, valuta riavvii periodici.
- Con Firehose, che riceve grandi quantità di messaggi, si consiglia di eseguire il lavoro nel listener in modo asincrono (Queue Job).
Source: src/Console/WebSocket