官方套件 · 框架

不用 Django Channels 的即時 Django 頁面

您的 WSGI Django 應用程式照常渲染 HTML 片段並廣播出去:每個開著的頁面都會即時插入、替換或移除它們。不必架 Django Channels、ASGI 伺服器或 Redis。

  • 一個 @broadcasts 裝飾器就讓清單在每個頁面即時更新,不論資料是從 view、admin、Celery 任務還是 shell 存進去的。
  • 廣播會等交易 commit 之後才送出,並支援 htmx 與 Turbo 8。
  • 也能簽署您自己的私人與 presence 頻道、驗證 Webhook,並發放推播通知權杖。支援 Django 4.2 到 6.1,Python 3.10 以上。

登入後,範例程式碼會自動帶入您的叢集主機。 登入

  1. 安裝

    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. 設定

    # 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. 使用

    {# 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>

開始之前

  • 應用程式的密鑰只會在建立應用程式或輪替密鑰時顯示一次。請只放在伺服器上,不要放進瀏覽器或遊戲的建置檔。
  • Free 方案需要把頁面載入的每個來源都加進應用程式的「允許的來源」(開發時是 http://localhost:8000,之後是您的網域)。"*" 需要付費方案。

請使用儀表板中的應用程式 Key;Secret 只放在你的伺服器上。頻道、事件與授權端點的用法和 Pusher 完全相同。 免費建立帳號 →