Centrifugo เป็นเซิร์ฟเวอร์การส่งข้อความแบบเรียลไทม์แบบโอเพ่นซอร์สที่ปรับขนาดได้ Centrifugo สามารถส่งข้อความไปยังผู้ใช้แอปพลิเคชันออนไลน์ที่เชื่อมต่อผ่านการขนส่งที่รองรับได้ทันที (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, WebTransport) Centrifugo มีแนวคิดในการสมัครรับข้อมูลช่อง – ดังนั้นจึงเป็นเซิร์ฟเวอร์ PUB/SUB ที่ต้องพบปะกับผู้ใช้
Centrifugo ไม่เชื่อเรื่องภาษาและสามารถใช้เพื่อสร้างแอปแชท การแสดงความคิดเห็นสด เกมที่มีผู้เล่นหลายคน การสร้างภาพข้อมูลแบบเรียลไทม์ เครื่องมือในการทำงานร่วมกัน ฯลฯ ร่วมกับแบ็กเอนด์ใดๆ เหมาะอย่างยิ่งสำหรับสถาปัตยกรรมสมัยใหม่ และช่วยให้แยกตรรกะทางธุรกิจออกจากเลเยอร์การขนส่งแบบเรียลไทม์ได้
SDK ไคลเอนต์อย่างเป็นทางการหลายตัวสำหรับการพัฒนาเบราว์เซอร์และมือถือรวมโปรโตคอลแบบสองทิศทาง นอกจากนี้ Centrifugo ยังสนับสนุนแนวทางทิศทางเดียวสำหรับกรณีการใช้งานที่เรียบง่ายโดยไม่ต้องพึ่งพา SDK
เอกสารประกอบ
- เว็บไซต์เอกสารอย่างเป็นทางการของ Centrifugo
- คำแนะนำในการติดตั้ง
- การเริ่มต้นใช้งานบทช่วยสอน
- ภาพรวมการออกแบบและการใช้สำนวน
- สร้างแอปแชท/ส่งข้อความ WebSocket ด้วยบทช่วยสอน Centrifugo
- บล็อกแรงเหวี่ยง
- คำถามที่พบบ่อย
เข้าร่วมชุมชน
- โทรเลข
- ความไม่ลงรอยกัน
- ทวิตเตอร์
ทำไมต้องเซนทริฟูโก้
แนวคิดหลักของ Centrifugo นั้นเรียบง่าย นั่นคือเซิร์ฟเวอร์ PUB/SUB ที่อยู่เหนือการขนส่งแบบเรียลไทม์สมัยใหม่:
ส่วนที่ยากคือการทำให้แนวคิดนี้พร้อมในการผลิต มีประสิทธิภาพ ยืดหยุ่น และพร้อมใช้งานจากสภาพแวดล้อมการใช้งานที่แตกต่างกัน Centrifugo เป็นโซลูชันที่สมบูรณ์ซึ่งได้ช่วยเหลือหลายโครงการในการเพิ่มคุณสมบัติแบบเรียลไทม์และปรับขนาดไปสู่การเชื่อมต่อพร้อมกันจำนวนมาก Centrifugo มีชุดคุณสมบัติที่ไม่มีอยู่ในโซลูชันโอเพ่นซอร์สอื่นๆ ในพื้นที่:
- การขนส่งแบบเรียลไทม์ที่มีประสิทธิภาพ: WebSocket, การสตรีม HTTP, เหตุการณ์ที่เซิร์ฟเวอร์ส่ง (SSE), GRPC, WebTransport
- ความสามารถในการปรับขนาดในตัวด้วย Redis (หรือ Redis Cluster หรือพื้นที่จัดเก็บข้อมูลที่เข้ากันได้กับ Redis – เช่น AWS Elasticache, KeyDB, DragonflyDB ฯลฯ) หรือ Nats
- API เซิร์ฟเวอร์ HTTP และ GRPC อย่างง่ายเพื่อสื่อสารกับ Centrifugo จากแบ็กเอนด์แอป
- กลไกการตรวจสอบการเชื่อมต่อที่ยืดหยุ่น: JWT และเหมือนพร็อกซี
- การสมัครสมาชิกช่องมัลติเพล็กซ์ผ่านการเชื่อมต่อเดียว
- การสมัครสมาชิกประเภทต่างๆ: ฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์
- กลยุทธ์การอนุญาตช่องต่างๆ แนวคิดเนมสเปซช่อง
- ประวัติข้อความยอดนิยมในช่องต่างๆ พร้อมการกู้คืนข้อความอัตโนมัติเมื่อเชื่อมต่อใหม่ โหมดการกู้คืนแคช (ส่งสิ่งพิมพ์ล่าสุดทันทีเมื่อสมัครสมาชิก)
- การบีบอัดเดลต้าในช่องสัญญาณตามอัลกอริธึมฟอสซิล
- ข้อมูลการแสดงตนของช่องออนไลน์ พร้อมการแจ้งเตือนการเข้าร่วม/ออก
- วิธีส่งการเรียก RPC ไปยังแบ็กเอนด์ผ่านการเชื่อมต่อแบบเรียลไทม์
- โปรโตคอลไคลเอนต์ที่เข้มงวดและมีประสิทธิภาพซึ่งอยู่ภายใต้ SDK อย่างเป็นทางการหลายรายการ
- การถ่ายโอนข้อความ JSON และ Protobuf แบบไบนารี พร้อมการทำให้เป็นอนุกรมที่ปรับให้เหมาะสม
- UI เว็บผู้ดูแลระบบแบบฝังที่สวยงาม
- และอื่นๆ อีกมากมาย โปรดเยี่ยมชมไซต์เอกสารประกอบของ Centrifugo
การสนับสนุน
พื้นที่เก็บข้อมูลนี้โฮสต์โดย packagecloud.io
ขอขอบคุณ JetBrains ที่ให้การสนับสนุน OSS (โค้ดส่วนใหญ่ที่นี่เขียนด้วย Goland):