Gói chính thức · Framework
Symfony UX Turbo Streams không cần Mercure hub
Các entity Doctrine có #[Broadcast], Turbo Streams và Symfony Messenger gửi cập nhật qua Hibira, và trình duyệt nhận chúng qua WebSocket. Không cần vận hành Mercure hub.
hibira-io/symfony-bundlePackagist ↗GitHub ↗
- #[Broadcast], turbo_stream_listen() và turbo_stream_from() hoạt động như với Mercure, với transport tên là hibira.
- Mỗi cập nhật là một message của Messenger, nên worker bất đồng bộ có thể gửi và mạng chậm không làm chậm request.
- Ký kênh private và presence của riêng bạn, xác minh webhook và cấp token thông báo đẩy. Symfony 6.4, 7 và 8, UX Turbo 2 và 3.
Đăng nhập để xem các đoạn mã này với host cụm của riêng bạn. Đăng nhập
Cài đặt
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:checkThiết lập
use Symfony\UX\Turbo\Attribute\Broadcast; class Message { // ... }Sử dụng
{# 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>
Trước khi bắt đầu
- Secret của ứng dụng chỉ hiện một lần, khi bạn tạo ứng dụng hoặc xoay vòng secret. Hãy giữ nó trên máy chủ, không bao giờ đưa vào trình duyệt hay bản build game.
- Với gói Free, hãy thêm mọi origin mà trang của bạn tải từ đó vào Origin được phép của ứng dụng (http://localhost:3000 khi phát triển, sau đó là tên miền của bạn). "*" cần gói trả phí.
Dùng app key từ bảng điều khiển; secret chỉ để trên máy chủ của bạn. Kênh, sự kiện và endpoint xác thực hoạt động y như với Pusher. Tạo tài khoản miễn phí →