栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django前后端实现websocket聊天室

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django前后端实现websocket聊天室

1.怎么实现群聊功能?

通过websocket进行长连接通信

2.什么是WebSocket?

Websocket是一种在单个TCP连接上进行全双工通信的协议,在Websocket协议中,没有

Request和Response的概念,连接一旦建立就建立了持久连接,双向可以随时向对方发送消息

3.Websocket的概念

WebSocket 是一种在单个TCP连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。

4.Websocket的优点,缺点和应用场景

优点:

支持双向通讯,实时性更强;

数据格式更轻量,性能开销小,通讯高效;因为http协议每次都要携带完整的头部,但是websocket在连接建立之后,从服务端到客户端只需要携带2-10个字节的头部,而从客户端到服务端也只需要2-10个字节的头部以及4个字节的掩码;

支持扩展,用户可以扩展协议或者实现自定义好的子协议(比如支持自定义压缩算法等),美剧硅谷中的pied piper的压缩算法应用于直播技术

缺点:

少部分浏览器可能不支持,浏览器支持的程度与方式有区别;

长连接对后端业务的代码稳定性要求更高,后端推送功能相对复杂;

成熟的 HTTP生态下有大量的组件可以复用,WebSocket较少;

应用场景:

即时聊天通讯,网站消息通知,

在线协同编辑,如腾讯文档;

多玩家在线游戏,视频弹幕,股票基金实时报价;

5.简单配置

websocket的第三方模块

  1. 首先,安装channels,注意版本:
    pip install channnels==2.3

      2. 在项目同名的应用下,操作

INSTALLED_APPS =(
    'django.contrib.auth',
    'django.contrib.contenttypes,
    'django.contrib.sessions',
    'channels',
)

比如我的项目名是job_demo,那么相对路径就是job_demo/job_demo/setting.py.
setting.py里配置,将我们的channels加入INSTALLED_APP里。

继续在setting.py中添加:

ASGI_APPLICATTON = 'shixun.asgi.application'

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991070.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号