Skip to content

ส่ง Event แรกของคุณ (Send First Event)

หลังจากที่คุณเข้าใจกระบวนการ connect และ authenticate สำเร็จแล้ว คราวนี้ฝั่ง Backend ของคุณจะเป็นฝ่าย publish event ไปหา Client

นี่คือจุดเด่นที่แท้จริงของการออกแบบระบบ RawPush -- "REST to WebSocket" เพียงแค่ Server ของคุณยิง HTTP POST ข้อมูลแบบง่ายๆ RawPush จะแปลงมันและกระจาย Broadcast เป็นแบบ WebSocket แจกจ่ายให้ Users ทุกคนที่อยู่ในห้อง (Channel) นั้นอย่างรวดเร็ว

1. การส่งการแจ้งเตือน (Notifications / Broadcasting)

สมมติคุณมีระบบ E-Commerce เมื่อมีการรันบิล หรือสั่งซื้อสินค้าสำเร็จ (บนฝั่ง Backend ของคุณ) คุณอยากให้หน้าเว็บ Browser ของคุณอัปเดตแจ้งเตือน

วิธีที่ดีที่สุดคือให้ Backend ของคุณ เรียก RawPush REST API (POST /api/v1/publish) เพื่อ publish event:

🌐 ตัวอย่าง: ส่ง "order.completed" เข้าไปยังตระกร้าของ user_123

bash
curl -X POST https://api.rawpush.com/api/v1/publish \
  -H "X-Api-Key: sk_your_secret_key" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "notifications:user_123",
    "event": "order.completed",
    "data": { 
        "order_id": "ORD-55021", 
        "status": "shipped",
        "message": "ของเตรียมจัดส่งพรุ่งนี้เช้าแล้ว!" 
    }
  }'

⚠️ สำคัญมาก

สังเกตว่าเราแนบ Header คือ X-Api-Key แบบ Secret Key (sk_xxx) ซึ่งห้ามพลาดเอาไปใช้หรือยิงจากหน้าเว็บ JavaScript Browser เด็ดขาด นี่คือกุญแจคุมหลังบ้านระดับ Admin ของโปรเจกต์


2. สิ่งที่ Client จะได้รับ (WebSocket Receivers)

เมื่อคุณรันคำสั่ง POST ข้างบน RawPush ได้รับข้อมูล... เราจะใช้เซิร์ฟเวอร์กระจายข้อมูล (Broadcast) ไปหาทุกคนที่เปรียบเสมือน "กำลังรอฟังข่าวสาร" อยู่ใน Channel นั้นๆ

💡 ยิงปุ๊บ ถึงปั๊บ

ทันทีที่คุณเรียก API นี้เสร็จ RawPush จะนำข้อมูลแจกจ่ายให้ Clients ปลายทางทั้งหมดภายในเศษเสี้ยววินาที (Low Latency)

Client ทุกตัวที่ subscribe channel นี้อยู่ จะได้รับข้อมูลผ่าน ws.onmessage ทันที:

json
{
  "v": 1,
  "type": "event",
  "id": "evt_01HGWXCQKY23Z",
  "channel": "notifications:user_123",
  "event": "order.completed",
  "data": { 
      "order_id": "ORD-55021", 
      "status": "shipped",
      "message": "ของเตรียมจัดส่งพรุ่งนี้เช้าแล้ว!" 
  },
  "sender": {
    "user_id": "system"
  }
}

ยินดีด้วยครับ 🎉

คุณได้เข้าใจวงจรทั้งหมด:

  1. Client connect WebSocket และรอรับข้อมูล
  2. Authenticate ด้วย HMAC
  3. Backend ส่ง POST (REST API) publish event
  4. RawPush broadcast ข้อมูลไปหา Client เพื่ออัปเดต UI

ในบทถัดไป เราจะมาเจาะลึกกระบวนการที่ยากที่สุด Authentication (HMAC) และการจำกัดสิทธิ์ในระดับ Enterprise กัน

Released under the MIT License.