zoukankan      html  css  js  c++  java
  • 分析dwebsocket的源码过程

     

    前言

      dwebsocet 是python django的websocket库,github地址:https://github.com/duanhongyi/dwebsocket

    本章是对dwebsocet的一个源码分析.

    开胃菜

    在django视图里,只需要这么定义,就搭建了一个websocet端。

    分析开始

    1.打开

    accept_websocket 源码,是这样。

    不要被它吓到,其实就是动态加载中间介,我们打开红箭头处的WebSocketMiddleware,代码是这样

    数字3 是当一个request请求过来时还没有到视图层,就要开始处理,数字1.是动态导入模块 2.是创建个 socket连接..详细就不写了。

    现在我们假设websocet连接过来到这个层,已经建立个 socket对象,接下来的步骤就是要接收用户请求。

    process_view 是在视图前调用,它这的目的就是用钩子,回调接收socket连接。此时我们应该就可以接收客户端发过来的数据了。就回到了第一个图的开胃菜哪。

    用for 去取request.websocket对象,很多人应该没搞清楚,它为什么能无限制的for, 而不被结束。原因在这里

    websocket这个对象的父类,写了个__iter__迭代对象,其实和客户端用的socket对象道理是一样的,要保持长连接,你就的while True.

    总结:

         大致整个流程是这个样子。

    附一张自己分析的草图,留着自己回忆.

     
    
    
    
  • 相关阅读:
    关于字段长度的定义
    连续滚动效果的脚本
    JavaScript显示日期,跳动时间,星期
    [转载]SQL2000里的数据类型
    VSTSTF54000错误
    Delphi TreeView 现场保存与恢复
    易简协同平台与佛道修行
    CMD 反编译CHM文件
    专家与大师
    流程建模思考(草)
  • 原文地址:https://www.cnblogs.com/whf191/p/7069079.html
Copyright © 2011-2022 走看看