Vue d’ensemble
laravel-bluesky fournit deux commandes WebSocket permettant de se connecter aux flux en temps réel de Bluesky.
- Jetstream — Endpoint WebSocket propre à Bluesky avec filtrage préappliqué. Léger, au format JSON.
- Firehose — Flux d’événements bruts d’AT Protocol. Reçoit toutes les données au format binaire DAG-CBOR.
Installation
La fonctionnalité WebSocket requiert Workerman.Jetstream
Vue d’ensemble
Jetstream est un service WebSocket avec filtrage préappliqué fourni par Bluesky. Vous pouvez filtrer par type de collection ou par DID utilisateur, ce qui permet de recevoir efficacement uniquement les événements nécessaires.Méthode de démarrage
Filtre par collection
L’option-C restreint les collections à recevoir. Plusieurs valeurs sont possibles.
Filtre par DID
L’option-D permet de recevoir uniquement les événements d’utilisateurs spécifiques.
Traitement des événements
La commande Jetstream déclenche des événements Laravel selon le type de message reçu.
Créez un listener d’événement pour traiter les événements.
Firehose
Vue d’ensemble
Firehose est le flux brut d’événements d’AT Protocol. Il reçoit toutes les opérations d’enregistrements du réseau Bluesky au format binaire (DAG-CBOR).Le décodage DAG-CBOR est effectué automatiquement par le package. Dans les listeners d’événements, vous recevez les données sous forme de tableau PHP standard.
Méthode de démarrage
Traitement des événements
La commande Firehose utilise également les événements Laravel pour traiter les messages.Configuration
Vous pouvez modifier l’hôte de connexion et la configuration des logs dansconfig/bluesky.php.
.env :
Combinaison avec Labeler
Vous pouvez démarrer simultanément un serveur Labeler et Jetstream / Firehose. Les données de Jetstream ou Firehose peuvent être utilisées pour traiter les requêtes d’étiquetage reçues par le Labeler.Pour plus de détails sur Labeler, consultez la page Labeler.
Exploitation des processus de longue durée
Les commandes WebSocket sont des processus qui restent actifs longtemps. En production, utilisez un outil de gestion de processus comme Supervisor.Exemple de configuration Supervisor
/etc/supervisor/conf.d/bluesky-jetstream.conf :
Configuration du daemon Laravel Forge
Si vous utilisez Laravel Forge, ajoutez un daemon depuis la section Daemons.- Command :
php artisan bluesky:ws start -C app.bsky.feed.post - Directory :
/var/www/html - User :
forge
Configuration des processus en arrière-plan sur Laravel Cloud
Les commandes WebSocket se connectent au flux Bluesky en tant que client WebSocket, elles fonctionnent donc aussi sur Laravel Cloud. Configurez-les comme processus en arrière-plan (worker personnalisé) de Laravel Cloud. Ajoutez un Custom Worker dans la configuration des processus en arrière-plan de Laravel Cloud. Pour Jetstream :Les arrêts et redémarrages de processus lors des déploiements sont tous gérés automatiquement par Laravel Cloud. Aucune configuration supplémentaire n’est nécessaire en dehors de la configuration du processus en arrière-plan.
Points d’attention
- Si le processus se termine de manière inattendue, il est redémarré automatiquement grâce à
autorestart=true. - Pour éviter les fuites mémoire, envisagez des redémarrages périodiques.
- Pour Firehose, qui reçoit un grand nombre de messages, il est recommandé de rendre asynchrone le traitement dans les listeners (Queue Job).
Source: src/Console/WebSocket