Streamer Des Logs En WebSocket
Objectif : consommer les logs en temps réel via des abonnements WebSocket.
Préconditions
- Le service JsonLog est joignable.
- Le client WebSocket prend en charge les paramètres de query et headers d’auth.
- Pour les canaux privés, fournir un token Bearer valide du compte propriétaire.
Flux API/Script
- Ouvrir un flux public :
- upgrade
GET /ws.
- upgrade
- Ouvrir un flux de canal :
GET /ws?cid=<channel_id>.
- Appliquer un filtre de niveau :
GET /ws?level=errorouGET /ws?cid=<channel_id>&level=warn.
- Pour les canaux privés :
- inclure
Authorization: Bearer <token>dans la requête d’upgrade.
- inclure
Flux HTTP/curl
curl ne peut pas terminer un flux WebSocket. Utilisez un client WebSocket comme wscat :
JSONLOG_BASE_URL="ws://localhost:3002"
ACCESS_TOKEN="<optional_account_token>"
# Flux public
wscat -c "${JSONLOG_BASE_URL}/ws"
# Flux public avec filtre de niveau
wscat -c "${JSONLOG_BASE_URL}/ws?level=error"
# Flux de canal
wscat -c "${JSONLOG_BASE_URL}/ws?cid=svc-api"
# Flux de canal privé (authentifié)
wscat -c "${JSONLOG_BASE_URL}/ws?cid=private-api" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
Validation
- Le message initial contient un tableau des logs en mémoire pour ce scope.
- Upgrade privé sans token :
401. - Upgrade privé avec token d’un autre compte :
404.