Django AsyncWebsocketConsumer与AsyncConsumer
我试图在我的项目中使用Django AsyncWebsocketConsumer与AsyncConsumer,django,websocket,django-channels,Django,Websocket,Django Channels,我试图在我的项目中使用频道2。这是我第一次在Django见到channel:) 我这里有两个主要的有用且几乎完整的来源:1)youtube上的视频2)中国频道的文档 由于我不知道我的代码将来会发生什么,我需要您帮助我选择使用source#1中提到的AsyncConsumer,或source#2中用于启动Django频道应用程序的AsyncWebsocketConsumer,包括以下内容: from channels.generic.websocket import AsyncWebsocketC
频道2
。这是我第一次在Django见到channel:)
我这里有两个主要的有用且几乎完整的来源:1)youtube上的视频2)中国频道的文档
由于我不知道我的代码将来会发生什么,我需要您帮助我选择使用source#1中提到的AsyncConsumer
,或source#2中用于启动Django频道应用程序的AsyncWebsocketConsumer
,包括以下内容:
from channels.generic.websocket import AsyncWebsocketConsumer
from channels.consumer import AsyncConsumer
说明:
class AsyncConsumer:
"""
Base consumer class. Implements the ASGI application spec, and adds on
channel layer management and routing of events to named methods based
on their type.
"""
class AsyncWebsocketConsumer(AsyncConsumer):
"""
Base WebSocket consumer, async version. Provides a general encapsulation
for the WebSocket handling model that other applications can build on.
"""
我使用频道的目标是:尝试集成实时聊天、通知/警报/将数据传输到特定情况下的客户端。(现在应用程序在没有Websocket和DRF的情况下工作)
如果您有任何建议、想法或注意事项,我将非常乐意倾听。非常感谢。频道是一个用于使用不同协议的项目,包括但不限于HTTP和WebSockets,如上所述。
AsyncConsumer
是派生其他协议特定使用者类的基本通用使用者类。其中一个类是您提到的AsynWebsocketConsumer
。顾名思义,它是用来处理websockets的,所以如果你想在你的实时应用程序中使用websockets,那么这就是你应该使用的类。还有一个用于使用HTTP的方法。您很可能希望使用WebSocket,因此请使用AsynWebsocketConsumer
或其衍生产品AsyncJsonWebsocketConsumer
我还建议您阅读文档,以便更详细地了解受支持的协议以及如何以及何时使用它们