← หัวข้อ

ทางเลือกแทน Soketi: ย้ายเซิร์ฟเวอร์โปรโตคอล Pusher ไปที่ไหนดี

Soketi ออกรุ่นล่าสุดเมื่อมีนาคม 2024 ทางเลือกที่รองรับ Pusher ที่ย้ายไปได้ สิ่งที่เปลี่ยนในการตั้งค่า และวิธีสลับโดยไม่มีดาวน์ไทม์

Soketi ทำให้การรันเซิร์ฟเวอร์โปรโตคอล Pusher เองเป็นเรื่องง่าย และแอป Laravel กับ Node.js จำนวนมากยังรันอยู่บนมัน แต่โปรเจกต์นี้ช้าลง ทีมที่พึ่งพามันจึงเริ่มถามว่าจะไปต่อที่ไหน เพราะ Soketi ใช้โปรโตคอล Pusher คำตอบจึงอาจเป็นแค่การเปลี่ยนการตั้งค่า ไม่ใช่การเขียนใหม่

สถานะของ Soketi

ข้อมูลจากรีโพซิทอรีของ Soketi และรายการรุ่น ตรวจสอบเมื่อ 2026-10-26

เซิร์ฟเวอร์ที่ใช้ได้วันนี้อาจใช้ได้ไปอีกนาน ความเสี่ยงอยู่ข้างหน้า เช่น Node.js รุ่นใหม่ที่เซิร์ฟเวอร์ build ไม่ผ่าน แพตช์ความปลอดภัยที่ไม่มีใครออก หรือบั๊กที่คุณต้องแก้เอง สำหรับส่วนที่รับการเชื่อมต่อของผู้ใช้ทุกคน ควรวางแผนไว้ก่อนที่จะกลายเป็นเรื่องเร่งด่วน

ปลายทางที่รองรับ Pusher

ตัวเลือกเหล่านี้ใช้ pusher-js, Laravel Echo และไลบรารีเซิร์ฟเวอร์ของ Pusher ต่อได้ ช่อง endpoint สำหรับยืนยันสิทธิ์ และอีเวนต์จึงเหมือนเดิม

ราคาจากเอกสารราคาของ Laravel Cloud และ pusher.com/channels/pricing ตรวจสอบเมื่อ 2026-10-26

การย้ายออกจากโปรโตคอล Pusher ไปใช้ Socket.IO, Centrifugo หรือ Ably ก็ทำได้ แต่ต้องเขียนโค้ดไคลเอนต์และเซิร์ฟเวอร์ใหม่ หน้าทางเลือกแทน Pusher มีรายละเอียด

ก่อน

เซิร์ฟเวอร์ของคุณ
HTTP API
Soketisoketi.example.com:6001
WebSocket
เบราว์เซอร์และแอป

หลัง

เซิร์ฟเวอร์ของคุณ
SDK เดิม เปลี่ยนโฮสต์
Hibiraws.hibira.io:443
WebSocket
เบราว์เซอร์และแอป
สิ่งที่เปลี่ยนเมื่อย้ายจาก Soketi ไปบริการที่รองรับ Pusher

สิ่งที่เปลี่ยนในการตั้งค่า

มีแค่ข้อมูลการเชื่อมต่อ แอป Laravel ที่รันบน Soketi มักตั้ง .env ให้ไดรเวอร์ Pusher ชี้ไปที่โฮสต์ของคุณพอร์ต 6001 เมื่อใช้บริการแบบโฮสต์ให้ ก็เปลี่ยนให้ชี้ไปที่บริการนั้นแทน

BROADCAST_CONNECTION=pusher
PUSHER_APP_ID=YOUR_APP_ID
PUSHER_APP_KEY=YOUR_APP_KEY
PUSHER_APP_SECRET=YOUR_APP_SECRET
PUSHER_HOST=ws.hibira.io
PUSHER_PORT=443
PUSHER_SCHEME=https

ใน pusher-js หรือ Laravel Echo ให้เปลี่ยน wsHost และพอร์ตให้ตรงกัน และคง forceTLS: true ไว้ การตั้งค่าใน app manager ของ Soketi เช่น ขีดจำกัดการเชื่อมต่อต่อแอปหรือ origin ที่อนุญาต ให้ย้ายไปตั้งในแดชบอร์ดของบริการใหม่

สลับระบบโดยไม่มีดาวน์ไทม์

  1. สร้างแอปในบริการใหม่และคัดลอกข้อมูลรับรอง
  2. ให้เซิร์ฟเวอร์เผยแพร่ทุกเหตุการณ์ไปทั้ง Soketi และบริการใหม่ การสร้างไลบรารีเซิร์ฟเวอร์ของ Pusher สองตัวแทบไม่มีต้นทุน
  3. ปล่อยการเปลี่ยนแปลงฝั่งไคลเอนต์ หน้าที่เปิดใหม่จะเชื่อมต่อโฮสต์ใหม่ ส่วนแท็บเก่าและแอปรุ่นเก่ายังอยู่กับ Soketi
  4. เมื่อจำนวนการเชื่อมต่อของ Soketi เหลือศูนย์หรือใกล้ศูนย์ ให้หยุดเผยแพร่ไปที่มันแล้วปิดลง

Webhook ก็เช่นกัน ให้ลงทะเบียน endpoint ของคุณในบริการใหม่ก่อนขั้นตอนที่ 3 ขั้นตอนเดียวกันสำหรับการย้ายจาก Pusher อยู่ในคู่มือการย้ายระบบ

สิ่งที่ได้จากบริการแบบโฮสต์ให้

นอกจากไม่ต้องดูแลเซิร์ฟเวอร์ บริการแบบโฮสต์ให้ยังมีเครื่องมือที่ Soketi ปล่อยให้คุณทำเอง ได้แก่ แดชบอร์ดแสดงจำนวนการเชื่อมต่อและข้อความ debug console ที่แสดงทุกอีเวนต์แบบสด webhook และการใช้งานเทียบกับขีดจำกัดของแพ็กเกจ

Debug console: การเชื่อมต่อ การสมัคร และทุกอีเวนต์ที่เผยแพร่ แบบสด
Debug console: การเชื่อมต่อ การสมัคร และทุกอีเวนต์ที่เผยแพร่ แบบสด

คำถามที่พบบ่อย

Soketi ยังมีการดูแลอยู่ไหม?

รุ่นล่าสุด 1.6.1 ออกเมื่อ 2024-03-25 และคอมมิตหลังจากนั้นเป็นการอัปเดต dependency ตัว README เองก็ระบุว่าการอัปเดตและการสนับสนุนไม่สม่ำเสมอ ยังใช้งานได้ แต่ควรวางแผนหาตัวแทน

ตัวแทน Soketi ที่ใกล้เคียงที่สุดคืออะไร?

Laravel Reverb ถ้าอยากรันเองต่อ หรือบริการแบบโฮสต์ให้ที่รองรับ Pusher ถ้าไม่อยากดูแลเซิร์ฟเวอร์ ทั้งสองใช้โปรโตคอล Pusher โค้ดจึงเหมือนเดิม

ต้องแก้โค้ดไคลเอนต์เพื่อย้ายออกจาก Soketi ไหม?

ไม่ต้อง ถ้าย้ายไปเซิร์ฟเวอร์หรือบริการที่ใช้โปรโตคอล Pusher เปลี่ยนแค่โฮสต์ พอร์ต key และ secret ใน .env และในตัวเลือกของ pusher-js หรือ Echo

ชื่อผลิตภัณฑ์เป็นเครื่องหมายการค้าของเจ้าของ