首页 > Web开发 > 详细

分析dwebsocket的源码过程

时间:2017-06-23 12:11:56      阅读:309      评论:0      收藏:0      [点我收藏+]

 

前言

  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.

 

总结:

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

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

技术分享

 

 

 

 

 

 

 

 


 

分析dwebsocket的源码过程

原文:http://www.cnblogs.com/whf191/p/7069079.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!