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.

    总结:

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

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

     
    
    
    
  • 相关阅读:
    解决AD原理图中无法输入中文的问题
    [编程题-京东]小球的距离
    [编程题-京东]上台阶
    [编程题-搜狐]发奖金
    [编程题-搜狐]扎金花
    [leetcode]最长递增序列
    [编程题-搜狐]马戏团
    [编程题-蘑菇街] 投篮游戏
    [编程题-蘑菇街]聊天
    [编程题-蘑菇街]回文串
  • 原文地址:https://www.cnblogs.com/whf191/p/7069079.html
Copyright © 2011-2022 走看看