Skip to content

คำศัพท์สำคัญ (Key Concepts)

ก่อนเริ่มต้นใช้งาน RawPush ควรทำความเข้าใจคำศัพท์หลัก 3 คำที่จะถูกใช้งานบ่อยที่สุดในระบบ


1. Project

Project คือพื้นที่ทำงานแยกอิสระออกจากกัน ข้อมูลระหว่างโปรเจกต์จะไม่มีทางรั่วไหลข้ามกันได้

  • 1 บัญชีผู้ใช้ สามารถมีได้หลาย Project (ขึ้นอยู่กับ Plan)
  • แต่ละ Project จะมี API Keys และ Dashboard สถิติ (Metrics / Error logs) เป็นของตัวเอง
  • การใช้งานจริง: แนะนำให้สร้าง 1 Project สำหรับ 1 แอปพลิเคชัน หรือแบ่งตาม Environment เช่น MyApp-Dev และ MyApp-Prod

2. API Keys

กุญแจสำหรับเชื่อมต่อและใช้งานระบบ RawPush โดยจะแบ่งเป็น 2 ส่วนที่แยกหน้าที่กันอย่างชัดเจน:

  • Public Key (pk_xxx): ใช้ให้ Client (เช่น Browser, Mobile app) นำไปต่อท้าย URL ตอนพยายามต่อ WebSocket (wss://..?app_key=pk_xxx)
    • ⚠️ ห้ามใช้คีย์นี้ในการยืนยันสิทธิ์ลึกๆ เป็นแค่ด่านแรกเท่านั้น
  • Secret Key (sk_xxx): กุญแจลับสุดยอด ใช้สำหรับ Backend (Server-side) ของคุณเท่านั้น มีหน้าที่เซ็นลายเซ็น HMAC-SHA256 และยิง REST API
    • ⛔️ ห้าม นำ Secret Key ไปฝังไว้ในหน้า Frontend เด็ดขาด หากหลุด ต้องรีบไปกด Revoke เปลี่ยนคีย์ใหม่ทันทีใน Dashboard

3. Channel & Event

สถาปัตยกรรมของ RawPush จะใช้ระบบ "ห้อง" (Channel) และ "ประเภทการกระทำ" (Event)

  • Channel: เปรียบเสมือน "คลื่นความถี่" หรือ "ช่องทางจำเพาะ" ที่ Client ต้องการเกาะติดเพื่อรอรับข้อมูล (Subscribe)
    • ตัวอย่าง: updates:feed_1, notifications:user_123, metrics:dashboard
  • Event: เปรียบเสมือน "ประเภทการกระทำ" ที่พ่วงมากับก้อนข้อมูลเวลาถูกส่งเข้ามาใน Channel
    • ตัวอย่าง: data.updated, price.changed, status_changed, job.completed

ประเภทของ Channel

ประเภทPrefixต้อง Auth เพิ่ม?คำอธิบาย
Publicไม่มี (ชื่ออะไรก็ได้)❌ ไม่ต้องSubscribe ได้ทันที เหมาะสำหรับข้อมูลสาธารณะ
Privateprivate:✅ ต้องแนบ auth.sigต้องใช้ลายเซ็น HMAC จาก Backend (Dynamic ได้ ไม่ต้องลงทะเบียน)

💡 กฎเหล็ก: Client ต้อง Subscribe เข้า channel ก่อนเสมอ ถึงจะ Publish ข้อมูลเข้า channel นั้นได้

เทียบการทำงาน:

"มีข้อมูลส่งเข้ามา (Event: price_update) ไปที่ channel ticker:btc_usd โดยมีข้อมูลคือ (Data: {'price': 68500.25})"


4. Webhook

Webhook คือระบบที่ RawPush จะ notify กลับไปหา Backend ของคุณ เมื่อมี Event บางอย่างเกิดขึ้น

  • แทนที่ Server ของคุณจะต้อง poll ข้อมูลจากเราตลอดเวลา RawPush จะส่ง HTTP POST ไปหา API endpoint ของคุณแบบ real-time
  • รองรับ 12 event types: connection lifecycle (connection.opened, connection.closed, connection.authenticated, connection.auth_failed), channel lifecycle (channel.subscribed, channel.unsubscribed, channel.occupied, channel.vacated), messages (message.published, message.rejected, client_event) และ system (webhook.test)

Released under the MIT License.