ส่ง 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
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 ทันที:
{
"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"
}
}ยินดีด้วยครับ 🎉
คุณได้เข้าใจวงจรทั้งหมด:
- Client connect WebSocket และรอรับข้อมูล
- Authenticate ด้วย HMAC
- Backend ส่ง POST (REST API) publish event
- RawPush broadcast ข้อมูลไปหา Client เพื่ออัปเดต UI
ในบทถัดไป เราจะมาเจาะลึกกระบวนการที่ยากที่สุด Authentication (HMAC) และการจำกัดสิทธิ์ในระดับ Enterprise กัน
