Gói chính thức · Framework

Trang Django thời gian thực không cần Django Channels

Ứng dụng Django WSGI của bạn vẫn render các đoạn HTML như cũ và phát chúng đi: mọi trang đang mở sẽ thêm, thay thế hoặc xóa chúng ngay khi có thay đổi. Không cần vận hành Django Channels, máy chủ ASGI hay Redis.

  • Chỉ một decorator @broadcasts là danh sách cập nhật trực tiếp trên mọi trang, dù dòng dữ liệu được lưu từ view, admin, tác vụ Celery hay shell.
  • Các lần phát chờ transaction commit rồi mới gửi, và hoạt động với htmx và Turbo 8.
  • 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. Hỗ trợ Django 4.2 đến 6.1 trên Python 3.10 trở lên.

Đă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

  1. Cài đặt

    pip install django-hibira
    
    # INSTALLED_APPS += ["django_hibira"]
    # urlpatterns += [path("hibira/", include("django_hibira.urls"))]
    
    HIBIRA_APP_ID=YOUR_APP_ID
    HIBIRA_APP_KEY=YOUR_APP_KEY
    HIBIRA_APP_SECRET=YOUR_APP_SECRET
    HIBIRA_HOST=ws.hibira.io
    
    python manage.py hibira_check
  2. Thiết lập

    # chat/models.py
    from django.db import models
    from django_hibira import broadcasts
    
    
    @broadcasts(to="room", target="messages")
    class Message(models.Model):
        room = models.ForeignKey(Room, on_delete=models.CASCADE, related_name="messages")
        body = models.TextField()
  3. Sử dụng

    {# base.html, in <head> #}
    {% load hibira %}
    {% hibira_scripts %}
    
    {# chat/room.html #}
    {% hibira_stream room %}
    <ul id="messages">
      {% for message in room.messages.all %}{% include "chat/_message.html" %}{% endfor %}
    </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:8000 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í →