แพ็กเกจอย่างเป็นทางการ · เฟรมเวิร์ก

Symfony UX Turbo Streams โดยไม่ต้องใช้ Mercure hub

เอนทิตี Doctrine ที่มี #[Broadcast], Turbo Streams และ Symfony Messenger ส่งอัปเดตผ่าน Hibira และเบราว์เซอร์รับผ่าน WebSocket ไม่ต้องดูแล Mercure hub

  • #[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

ลงชื่อเข้าใช้เพื่อดูโค้ดตัวอย่างเหล่านี้พร้อมโฮสต์คลัสเตอร์ของคุณเอง ลงชื่อเข้าใช้

  1. ติดตั้ง

    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
  2. ตั้งค่า

    use Symfony\UX\Turbo\Attribute\Broadcast;
    
    #[ORM\Entity]
    #[Broadcast]
    class Message
    {
        // ...
    }
  3. ใช้งาน

    {# 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 ทุกประการ สร้างบัญชีฟรีของคุณ →