Django配置websocket时的错误解决

基于移动群智感知的网络图谱构建系统需要手机app不断上传数据到服务器并把数据推到前端标记在百度地图上,由于众多手机向同一服务器发送数据,如果使用长轮询,则实时性差、延迟高且服务器的负载过大,而使用websocket则有更好的性能。

Django配置websocket的文章网络上有很多,可以参考:

1Django中使用WebSocket(channels)_django使用ws-CSDN博客文章浏览阅读356次。下载channels库和daphne库。_django使用wshttps://blog.csdn.net/qq_46042132/article/details/130994781

239.Django 实现WebSocket - cloud_wh - 博客园 (cnblogs.com)https://www.cnblogs.com/qingtianyu2015/p/17196676.html3【踩坑指南】Django+channels WebSocket配置_starting asgi/daphne version 4.0.0 development ser-CSDN博客https://blog.csdn.net/qq_25218219/article/details/131752459

414-9 django中配置channels_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18U4y1Y7Do?p=9&vd_source=c71b91500f94df06bc5d49825b8d6d17

然而我配置完后,运行报了这样的错误:

我的代码配置都没有问题,所以我怀疑是python、Django、channels、daphne之间的兼容性发生了问题,我重新安装了django、channels、daphne,但是还是报了相同的错误。

把错误问了chatgpt,说是缺少Cryptography库的Rust扩展导致的。Cryptography库用于处理加密和密码学相关的操作。我重新卸载安装了Cryptography,在安装时报了这样一个错误:

复制代码
Installing collected packages: cryptography
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
pyopenssl 23.0.0 requires cryptography<40,>=38.0.0, but you have cryptography 42.0.1 which is incompatible.
Successfully installed cryptography-42.0.1

原因是安装的cryptography版本(42.0.1)与pyopenssl库的要求存在冲突,pyopenssl要求的cryptography版本应小于40,并且大于等于38。

我安装的是42.0.1版本,所以发生错误,我又把cryptography换成39.0.1版本,再次运行,websocket配置成功:

相关推荐
我是乌鸦的空间2 小时前
什么是网络安全中的电子数据取证与响应?
网络·网络安全
跨境旺仔小拳头2 小时前
如何使用Crawl4AI进行网页爬虫?从0搭建教程与代理配置指南
网络·人工智能·爬虫·chatgpt·aigc
沫儿笙2 小时前
焊接机器人氩弧焊省气装置
网络·机器人
80s7772 小时前
什么是动态IP?静态IP和动态IP有什么区别?
网络·网络协议·tcp/ip
那年窗外下的雪.3 小时前
AIDC 学习日志|第 15 天|EVPN 多归属故障收敛与撤销机制
网络·学习·php
国科安芯4 小时前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座
少陽君5 小时前
用于InfiniBand网络的实时终端监控器——高速互连的htop
网络
IPdodo_7 小时前
代理 IP 服务商 SLA 怎么验?7 项指标与 Python 探测脚本实战
运维·python·网络协议·网络安全·代理ip
发量惊人的中年网工7 小时前
如何验证DDoS高防真的生效?从源站隐藏到正常访问的完整验收方法
运维·网络·数据库·ddos
宠友信息8 小时前
内容社区源码开发实践解析,用Spring Boot打造1:1仿小红书源码平台
java·spring boot·redis·websocket·mysql·spring·uni-app