Streaming Log Melalui WebSocket
Tujuan: mengonsumsi log real-time melalui subscription WebSocket.
Prasyarat
- Layanan JsonLog dapat diakses.
- Klien WebSocket mendukung parameter query dan header auth.
- Untuk channel privat, sediakan token Bearer valid milik akun pemilik channel.
Alur API/Script
- Buka stream publik:
- upgrade
GET /ws.
- upgrade
- Buka stream channel:
GET /ws?cid=<channel_id>.
- Terapkan filter level:
GET /ws?level=erroratauGET /ws?cid=<channel_id>&level=warn.
- Untuk channel privat:
- sertakan
Authorization: Bearer <token>pada request upgrade.
- sertakan
Alur HTTP/curl
curl tidak dapat menyelesaikan alur WebSocket. Gunakan klien seperti wscat:
JSONLOG_BASE_URL="ws://localhost:3002"
ACCESS_TOKEN="<optional_account_token>"
# Stream publik
wscat -c "${JSONLOG_BASE_URL}/ws"
# Stream publik dengan filter level
wscat -c "${JSONLOG_BASE_URL}/ws?level=error"
# Stream channel
wscat -c "${JSONLOG_BASE_URL}/ws?cid=svc-api"
# Stream channel privat (terautentikasi)
wscat -c "${JSONLOG_BASE_URL}/ws?cid=private-api" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"
Validasi
- Pesan awal berisi array log buffer untuk cakupan stream tersebut.
- Upgrade channel privat tanpa token mengembalikan
401. - Upgrade channel privat dengan token akun yang salah mengembalikan
404.