使用 Django Channels 构建实时聊天应用(包含用户认证和消息持久化)
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
import chat.routing
application = ProtocolTypeRouter({
"websocket": AuthMiddlewareStack(
URLRouter(
chat.routing.websocket_urlpatterns
)
),
# 如果还需要处理HTTP请求,可以在这里添加'http' -> 'http.consumers.HttpConsumer'的映射
})
这段代码定义了如何处理WebSocket连接,它使用了Django Channels的AuthMiddlewareStack
来确保用户在建立WebSocket连接时已经通过身份验证。这是构建一个安全的实时应用的关键步骤。在这个例子中,chat.routing.websocket_urlpatterns
是一个包含WebSocket路由的列表,这些路由指定了当WebSocket连接建立时应调用哪个消费者视图。这个例子展示了如何将认证和路由集成到一个单一的asgi应用程序中。
评论已关闭