官方包 · 框架

无需 Django Channels 的实时 Django 页面

您的 WSGI Django 应用照常渲染 HTML 片段并广播出去:每个打开的页面都会实时插入、替换或移除它们。无需部署 Django Channels、ASGI 服务器或 Redis。

  • 一个 @broadcasts 装饰器就能让列表在每个页面实时更新,无论数据是通过 view、admin、Celery 任务还是 shell 保存的。
  • 广播会等事务提交后才发送,并支持 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 完全相同。 免费创建账号 →