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

หน้า Django แบบเรียลไทม์โดยไม่ต้องใช้ Django Channels

แอป Django แบบ WSGI ของคุณเรนเดอร์ HTML fragment ตามเดิมแล้วบรอดแคสต์ออกไป ทุกหน้าที่เปิดอยู่จะเพิ่ม แทนที่ หรือลบ fragment นั้นทันที ไม่ต้องดูแล Django Channels, เซิร์ฟเวอร์ ASGI หรือ Redis

  • ใส่ decorator @broadcasts ตัวเดียว รายการก็อัปเดตสดในทุกหน้า ไม่ว่าแถวนั้นจะถูกบันทึกจาก view, admin, งาน Celery หรือ shell
  • การบรอดแคสต์จะรอให้ทรานแซกชันคอมมิตก่อนจึงส่ง และทำงานร่วมกับ htmx และ Turbo 8 ได้
  • ลงนามแชนเนล private และ 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 ให้ใส่ทุก origin ที่หน้าเว็บโหลดมาใน Origin ที่อนุญาตของแอป (http://localhost:8000 ระหว่างพัฒนา แล้วตามด้วยโดเมนของคุณ) ส่วน "*" ต้องใช้แพ็กเกจแบบชำระเงิน

ใช้ app key จากแดชบอร์ดของคุณ ส่วน secret ให้เก็บไว้บนเซิร์ฟเวอร์เท่านั้น ช่อง อีเวนต์ และ endpoint การยืนยันสิทธิ์ทำงานเหมือนกับที่ใช้กับ Pusher ทุกประการ สร้างบัญชีฟรีของคุณ →