django+WebSocket主动推送数据到前端

django+WebSocket主动推送数据到前端
  • 一旦web服务器和客户端之间建立起websocket协议的通信连接,之后所有的通信都依靠这个专用协议进行。通信过程中可互相发下哦那个JSON、XML、HTML或者图片等任意格式的数据。
  • 由于是建立在HTTP协议的基础上,因此连接的发起方仍是客户端,而一旦确立websocket通信连接,不论服务器还是客户端,任意一方都可直接向对方发送报文。
  • websocket协议的主要特点:
    • 推送功能
      • 支持由服务器向客户端推送数据的推送功能。这样,服务器可直接发送数据,而不必等待客户端的请求。
    • 减少通信量
      • 只要建立起websocket连接,就希望一直保持连接状态。和HTTP相比,不但每次连接时的总开销减少,而且由于websocket的首部信息很小,通信量也响应减少了。
        django+WebSocket主动推送数据到前端_第1张图片
        成功握手确立 WebSocket 连接之后,通信时不再使用 HTTP 的数据帧,而采用 WebSocket 独立的数据帧。
Django实现后端主动推送数据到前端

安装dwebsocket库

pip install dwebsocket 

settings.py

INSTALLED_APPS = [
  、、、、、、
    'dwebsocket'
    、、、、、、
]

views.py

from dwebsocket.decorators import accept_websocket
@accept_websocket
def connect(request):
    if request.is_websocket():  # 如果请求是websocket请求:
       #获取前端传来的值
       msg=request.websocket.wait()
       dict={}#自己设定要传到前端的字典值
       json.dumps(dict,ensure_ascii=False)
       #返回值到前端,这个操作只要连接还在就可以不断的向前端传值

你可能感兴趣的:(websocket,django)