JL
ID
Beranda dokumentasi
Menu
Panduan

Streaming Log Melalui WebSocket

Berlangganan stream real-time publik atau berbasis channel melalui /ws.

guide jsonlog

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

  1. Buka stream publik:
    • upgrade GET /ws.
  2. Buka stream channel:
    • GET /ws?cid=<channel_id>.
  3. Terapkan filter level:
    • GET /ws?level=error atau GET /ws?cid=<channel_id>&level=warn.
  4. Untuk channel privat:
    • sertakan Authorization: Bearer <token> pada request upgrade.

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.

Dokumen Terkait