รหัสข้อผิดพลาดและตารางอ้างอิง (Error Codes Reference)
หน้านี้รวบรวมรหัสข้อผิดพลาดทั้งหมดที่คุณอาจพบจากการเชื่อมต่อ WebSocket ของ RawPush รวมถึงเหตุผลเชิงลึกว่าทำไมจึงเกิดรหัสเหล่านั้น และวิธีแก้ปัญหาเบื้องต้นสั้นๆ สำหรับนำไปใส่ในโค้ดของคุณเพื่อจัดการการ Reconnect
🛑 รหัสเมื่อโดนตัดการเชื่อมต่อ (Close Codes)
เมื่อ Connection โดนหลุด หรือโดนสับสวิตช์ทิ้ง (Trigger ในฟังก์ชัน ws.onclose) โค้ดที่แจ้งกลับมักจะมีหน้าตาดังนี้:
| รหัส Code | ชื่อสากล | ความหมายและสิ่งที่ควรทำ |
|---|---|---|
1000 | Normal Closure | การจากลากันด้วยดี (เช่น คุณสั่ง ws.close() เองเพราะจะเปลี่ยนหน้าจอ) |
1001 | Going Away | หน้าจอแท็บ Browser หรือมือถือปิดแอปลง, หรือฝั่ง RawPush Reboot เซิร์ฟเวอร์ (เดี๋ยวต่อใหม่ได้) |
1006 | Abnormal Closure | เสาสัญญาณขาดหาย อินเทอร์เน็ตพัง ดับวูบกะทันหัน... ควรเขียนโค้ดต่อใหม่แบบ Exponential Backoff ทันที |
4001 | Auth Timeout | connect WebSocket สำเร็จแล้ว แต่ไม่ส่ง cmd: auth มาภายในเวลาที่กำหนด |
4002 | Invalid JSON | ระบบพบว่ารูปแบบ Text ที่บังเอิญคุณปาเข้าบ้านมา ไม่ใช่โครงสร้างของ JSON หรือหาปีกลงไม่เจอ |
4004 | Unknown Command | คุณพิมพ์ชื่อ cmd (เช่น subcribe) ผิดตัวอักษร หรือระบบยังไม่รองรับการกระทำนั้น |
🚫 รหัสยืนยันตัวตนตกหล่น (Auth / System Errors)
เวลาระบบปฏิเสธคำขอ Auth ข้อความ Error กลุ่มนี่จะมาเป็น JSON ทางช่องทาง ws.onmessage และมี type: "error" หรืออยู่ในส่วน Error ของ type: "reply"
| แจ้งเตือน | สาเหตุ |
|---|---|
Invalid signature | HMAC ที่ Backend กวนไว้ ลายนิ้วมือตัวเลข Hex ออกมาไม่ตรงกับฝั่ง RawPush |
Token expired | ระบบมองว่า exp Timestamp ตัวเลขน้อยกว่าเวลา Server ปัจจุบัน ทำให้บัตรนี้บูดเน่าไปแล้ว |
Invalid token format | ฟิลด์ jti, exp ขาดหายไป หรือไม่ใช่โครงสร้างที่ใช้งานได้ |
🚧 รหัสข้อห้ามขีดจำกัด (Rate Limit & Size Drops)
การยิงรัวเกิน หรือขนบรรทุกใหญ่เกิน ระบบจะตีกลับข้อผิดพลาดเฉพาะตัวในรูปแบบ reply กลับหาการกระทำนั้นๆ
| แจ้งเตือน | สาเหตุ | ป้องกันอย่างไร |
|---|---|---|
Payload too large | ใส่เนื้อความในตระกร้า data ของขนาดเกินค่า 10KB สูงสุด | โยนแต่ Link URL ของก้อนใหญ่ แทนที่จะส่งตัวเต็ม Base64 |
Rate limit exceeded | คุณกำลังสาดกระจายความเร็วล้นขอบความจุของแพกเกจหลักโปรเจกต์คุณแล้ว | หากเกินบ่อย ให้ติดต่อเพิ่มโควต้าโปรเจกต์ หรือรวบของ 10 อย่าง ใส่การ Publish รอบเดียว! |
