แพ็กเกจอย่างเป็นทางการ · เฟรมเวิร์ก
Symfony UX Turbo Streams โดยไม่ต้องใช้ Mercure hub
เอนทิตี Doctrine ที่มี #[Broadcast], Turbo Streams และ Symfony Messenger ส่งอัปเดตผ่าน Hibira และเบราว์เซอร์รับผ่าน WebSocket ไม่ต้องดูแล Mercure hub
hibira-io/symfony-bundlePackagist ↗GitHub ↗
- #[Broadcast], turbo_stream_listen() และ turbo_stream_from() ทำงานเหมือนกับ Mercure โดยใช้ transport ชื่อ hibira
- ทุกอัปเดตเป็นข้อความ Messenger จึงให้ worker แบบ async ส่งได้ และเครือข่ายที่ช้าจะไม่ทำให้รีเควสต์ช้าลง
- ลงนามแชนเนล private และ presence ของคุณเอง ตรวจสอบ webhook และออกโทเค็นการแจ้งเตือนแบบพุช รองรับ Symfony 6.4, 7 และ 8, UX Turbo 2 และ 3
ลงชื่อเข้าใช้เพื่อดูโค้ดตัวอย่างเหล่านี้พร้อมโฮสต์คลัสเตอร์ของคุณเอง ลงชื่อเข้าใช้
ติดตั้ง
composer require hibira-io/symfony-bundle # .env.local HIBIRA_APP_ID=YOUR_APP_ID HIBIRA_APP_KEY=YOUR_APP_KEY HIBIRA_APP_SECRET=YOUR_APP_SECRET php bin/console hibira:checkตั้งค่า
use Symfony\UX\Turbo\Attribute\Broadcast; class Message { // ... }ใช้งาน
{# templates/broadcast/Message.stream.html.twig #} {% block create %} <turbo-stream action="append" target="messages"> <template>{{ include('message/_message.html.twig', { message: entity }) }}</template> </turbo-stream> {% endblock %} {# the page #} <ul id="messages" {{ turbo_stream_listen('App\\Entity\\Message') }}></ul>
ก่อนเริ่ม
- ซีเคร็ตของแอปจะแสดงเพียงครั้งเดียว ตอนสร้างแอปหรือตอนหมุนเวียนซีเคร็ต เก็บไว้บนเซิร์ฟเวอร์เท่านั้น ห้ามใส่ในเบราว์เซอร์หรือไฟล์บิลด์ของเกม
- ในแพ็กเกจ Free ให้ใส่ทุก origin ที่หน้าเว็บโหลดมาใน Origin ที่อนุญาตของแอป (http://localhost:3000 ระหว่างพัฒนา แล้วตามด้วยโดเมนของคุณ) ส่วน "*" ต้องใช้แพ็กเกจแบบชำระเงิน
ใช้ app key จากแดชบอร์ดของคุณ ส่วน secret ให้เก็บไว้บนเซิร์ฟเวอร์เท่านั้น ช่อง อีเวนต์ และ endpoint การยืนยันสิทธิ์ทำงานเหมือนกับที่ใช้กับ Pusher ทุกประการ สร้างบัญชีฟรีของคุณ →