一、长轮询
在扫码登录的页面,服务器是如何知道用户有没有在手机上扫码登录?
通过长轮询的方式,每隔几秒向服务器发送一个请求,服务器判断这个请求中有没有用户扫码。
缺点
1.开销大
2.浪费资源
3.消耗流量
二、websocket概念
长轮询消耗太多资源,其中主要原因是客户端和服务端并没有一直连接在一起。
websocket起到的作用,就是让客户端和服务器一直连接在一起。
(一).websocket官话描述
WebSocket协议是基于TCP的一种新的HTML5网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并被RFC7936所补充规范。
(二).简单理解
客户端和服务器一直连接在一起
三、websocket服务端编程
(一).导包
import tornado.websocket
(二).编写一个基类
class BaseWebSocketHandler(tornado.websocket.WebSocketHandler, SessionMixin): def get_current_user(self): current_user = self.session.get('user') if current_user: return current_user return None