Python web实战之Django 的 WebSocket 支持详解
from django.shortcuts import render
from channels.generic.websocket import WebsocketConsumer
import json
# 简单的Websocket生命周期示例
class ChatConsumer(WebsocketConsumer):
def connect(self):
self.accept() # 接受WebSocket连接
def receive(self, text_data=None, bytes_data=None):
text_data_json = json.loads(text_data)
message = text_data_json['message']
# 示例:将接收到的消息发送回客户端
self.send(text_data=json.dumps({
'message': message,
}))
def disconnect(self, close_code):
pass # 可以在这里处理断开连接的逻辑
# 在URL配置中使用ChatConsumer
from django.urls import path
from .consumers import ChatConsumer
websocket_urlpatterns = [
path('ws/chat/', ChatConsumer.as_asgi()),
]
这个示例展示了如何在Django中创建一个简单的WebSocket处理类,并在视图函数中使用它。它接受WebSocket连接,并将接收到的文本数据发送回客户端。这个例子是基于Django Channels库,它是Django的一个第三方扩展,专门用于处理WebSocket和其他异步HTTP请求。
评论已关闭