JL
TH
หน้าเอกสาร
เมนู
คู่มือ

สตรีม Log ผ่าน WebSocket

สมัครรับสตรีมแบบเรียลไทม์ ทั้งสาธารณะหรือจำกัดตามช่องทาง ผ่าน /ws

guide jsonlog

สตรีม Log ผ่าน WebSocket

วัตถุประสงค์: รับ log แบบเรียลไทม์ผ่านการ subscribe ด้วย WebSocket

เงื่อนไขก่อนเริ่ม

  • เข้าถึงบริการ JsonLog ได้
  • ไคลเอนต์ WebSocket รองรับ query parameter และ header สำหรับ auth
  • สำหรับช่องทางส่วนตัว ต้องใช้ Bearer token ที่ถูกต้องของบัญชีเจ้าของช่องทาง

ลำดับงาน API/Script

  1. เปิดสตรีมสาธารณะ:
    • GET /ws upgrade
  2. เปิดสตรีมตามช่องทาง:
    • GET /ws?cid=<channel_id>
  3. ใช้ตัวกรองระดับ:
    • GET /ws?level=error หรือ GET /ws?cid=<channel_id>&level=warn
  4. สำหรับช่องทางส่วนตัว:
    • ใส่ Authorization: Bearer <token> ในคำขอ upgrade

ลำดับงาน HTTP/curl

curl ไม่สามารถทำ WebSocket flow ได้ครบ ใช้ไคลเอนต์อย่าง wscat แทน:

JSONLOG_BASE_URL="ws://localhost:3002"
ACCESS_TOKEN="<optional_account_token>"

# สตรีมสาธารณะ
wscat -c "${JSONLOG_BASE_URL}/ws"

# สตรีมสาธารณะพร้อมตัวกรองระดับ
wscat -c "${JSONLOG_BASE_URL}/ws?level=error"

# สตรีมตามช่องทาง
wscat -c "${JSONLOG_BASE_URL}/ws?cid=svc-api"

# สตรีมช่องทางส่วนตัว (ยืนยันตัวตน)
wscat -c "${JSONLOG_BASE_URL}/ws?cid=private-api" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"

การตรวจสอบ

  • ข้อความแรกมีอาร์เรย์ของ log จากบัฟเฟอร์ในขอบเขตสตรีมนั้น
  • upgrade ช่องทางส่วนตัวโดยไม่มี token จะได้ 401
  • upgrade ช่องทางส่วนตัวด้วย token บัญชีผิดจะได้ 404

เอกสารที่เกี่ยวข้อง