我正在尝试使用Django通道Rest框架订阅模型中的更改。我一直在https://djangochannelsrestframework.readthedocs.io/en/latest/examples/model_observer.html遵循这个例子,最新的问题是:How to subscribe to all instances of a model in django channels rest framework?。但是,当模型更新时,我不会通过WebSocket接收更新
我将consumser设置如下:
# consumers.py
from djangochannelsrestframework.consumers import AsyncAPIConsumer
from djangochannelsrestframework.observer import model_observer
from .models import User, Comment
class ModelConsumerObserver(AsyncAPIConsumer):
async def accept(self, **kwargs):
print("WebSocket Connect 1")
await super().accept()
print("WebSocket Connect 2")
await self.model_change.subscribe()
print("WebSocket Connect 3")
@model_observer(Comment)
async def model_change(self, message, **kwargs):
print("Model Observer 1")
await self.send_json(message)
print("Model Observer 2")
我试图订阅注释模型,如文档中的示例所示。然而,我没有收到模型的更新。在我这边,目前没有身份验证,服务器上也没有异常。本地服务器控制台显示:
System check identified no issues (0 silenced).
June 06, 2021 - 10:11:10
Django version 3.2.3, using settings 'websocket.settings'
Starting ASGI/Channels version 3.0.3 development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
HTTP GET / 200 [0.01, 127.0.0.1:64527]
WebSocket HANDSHAKING /ws/my-consumer/ [127.0.0.1:64528]
WebSocket Connect 1
WebSocket CONNECT /ws/my-consumer/ [127.0.0.1:64528]
WebSocket Connect 2
WebSocket Connect 3
我不确定,但它似乎永远不会到达模型观察者。有什么想法吗
目前没有回答
相关问题 更多 >
编程相关推荐