Django使用WebSocket

django channels 是django支持websocket的一个模块。

1安装.

|-------------------------|
| pip3 install channels |

2.在settings中添加配置

python 复制代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'channels',
]

ASGI_APPLICATION = "django_channels_demo.routing.application"

3.创建websocket应用和路由

python 复制代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from channels.routing import ProtocolTypeRouter, URLRouter
from django.conf.urls import url
from chat import consumers


application = ProtocolTypeRouter({
    'websocket': URLRouter([
        url(r'^chat/$', consumers.ChatConsumer),
    ])
})

4.编写处理websocket逻辑业务

python 复制代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from channels.generic.websocket import WebsocketConsumer
from channels.exceptions import StopConsumer

class ChatConsumer(WebsocketConsumer):

    def websocket_connect(self, message):
        self.accept()

    def websocket_receive(self, message):
        print('接收到消息', message)
        self.send(text_data='收到了')

    def websocket_disconnect(self, message):
        print('客户端断开连接了')
        raise StopConsumer()

5.启动:

python 复制代码
daphne -b 0.0.0.0 -p xxxx xxxx.asgi:application
相关推荐
MekoLi2920 小时前
ClickHouse 新手完全指南:从入门到架构师的最佳实践
后端·架构
I_Jln20 小时前
基于 Spring Cloud Gateway + Sa-Token 的架构为例,Token 异常的执行链路
后端
wertyuytrewm21 小时前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
盐水冰21 小时前
【烘焙坊项目】后端搭建(14) - 工作台&导出数据报表
java·后端·学习
小杍随笔21 小时前
【Rust 语言编程知识与应用:闭包详解】
开发语言·后端·rust
曲辕RPA21 小时前
深度解析GEO技术及背后的机器人曲辕RPA
python·ai·自动化·rpa
2301_7644413321 小时前
使用python构建的STAR实验ΛΛ̄自旋关联完整仿真
开发语言·python·算法
xifangge202521 小时前
Python 爬虫实战:爬取豆瓣电影 Top250 数据并进行可视化分析
开发语言·爬虫·python
Flittly21 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(10)Team Protocols (团队协议)
笔记·python·ai·ai编程
阿_旭21 小时前
基于YOLO26深度学习的蓝莓成熟度检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】图像分割、人工智能
人工智能·python·深度学习·毕业设计·蓝莓成熟度检测