随笔分类 -  Django channels

摘要:settings.py配置 # 存储在内存里 CHANNEL_LAYERS = { "default": { "BACKEND": "channels.layers.InMemoryChannelLayer", } } # 存储在redis 安装:pip3 install channels-redi 阅读全文
posted @ 2022-05-22 20:33 木子七 阅读(350) 评论(0) 推荐(0) 编辑
摘要:self代表当前用户客户端与服务端的连接对象,比如两客户端发来了两个连接,我们可以把两个连接放在一起 # 定义全局变量 CONN_List = [] class LiveConsumer(WebsocketConsumer): def websocket_connect(self, message) 阅读全文
posted @ 2022-05-22 20:24 木子七 阅读(78) 评论(0) 推荐(0) 编辑
摘要:客户端主动向服务端发起websocket连接,服务端接收到连接后通过(握手) 客户端 websocket socket = new WebSocket('ws://127.0.0.1/ws/'); 服务端 def websocket_connect(self, message): # 有客户端向后端 阅读全文
posted @ 2022-05-22 20:21 木子七 阅读(369) 评论(0) 推荐(0) 编辑
摘要:Django默认不支持websockey,需要Django支持的话需要安装第三方组件 django channels 是django支持websocket的一个模块。 1.安装 pip3 install channels # 安装 2.settings.py配置 #INSTALLED_APPS 中注 阅读全文
posted @ 2022-05-22 20:15 木子七 阅读(182) 评论(0) 推荐(0) 编辑
摘要:websocket协议原理 1.WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符。它实现了浏览器与服务器全双工(full-duplex)通信。其本质是保持TCP连接,在浏览器和服务端通过Socket进行 阅读全文
posted @ 2022-05-22 20:01 木子七 阅读(112) 评论(0) 推荐(0) 编辑
摘要:websockey的模式就是在于当前端向后端发送请求创建一个websocket链连接之后,连接默认不断开,前端和服务端就维护了一个连接,前端可以通过连接给服务端发消息,服务端也可以通过连接给前端发消息,实现了双向通信,也叫双工通道 原来的web中: http协议:无状态&短连接 客户端主动连接服务端 阅读全文
posted @ 2022-05-22 19:53 木子七 阅读(36) 评论(0) 推荐(0) 编辑
摘要:长轮询: 当服务器收到前端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。如果有更新,则进行响应, 如果一直没有数据,则到达一定的时间限制(服务器端设置)才返回,返回完之后,客户端再次建立连接,周而复始,基于事件的触发,一个事件接一个事件 长轮询处理流程 阅读全文
posted @ 2022-05-22 19:47 木子七 阅读(87) 评论(0) 推荐(0) 编辑
摘要:轮询:前端每隔固定时间向后台发送一次请求,询问服务器是否有新数据 轮询的工作流程 1.前端发送数据 2.后端接收处理数据 3.前端定时请求数据 4.后端返回新数据 一、发送-接收数据 // 前端 <div class="message" id="message"> <div> <input type 阅读全文
posted @ 2022-05-22 18:34 木子七 阅读(408) 评论(0) 推荐(0) 编辑
摘要:一、轮询 前端每隔固定时间向后台发送一次请求,询问服务器是否有新数据 缺点: 延迟,需要固定的轮询时间,不一定是实时数据 大量耗费服务器内存和宽带资源,因为不停的请求服务器,很多时候 并没有新的数据更新,因此绝大部分请求都是无效请求 二、长轮询 当服务器收到前端发来的请求后,服务器端不会直接进行响应 阅读全文
posted @ 2022-05-22 18:26 木子七 阅读(551) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
workspaces
keyboard_arrow_up dark_mode palette
选择主题