分析dwebsocket的源码过程
2021-07-16 14:07
标签:websocket 加载 http 迭代 git .com 应该 cep 技术分享 dwebsocet 是python django的websocket库,github地址:https://github.com/duanhongyi/dwebsocket 本章是对dwebsocet的一个源码分析. 在django视图里,只需要这么定义,就搭建了一个websocet端。 1.打开 不要被它吓到,其实就是动态加载中间介,我们打开红箭头处的WebSocketMiddleware,代码是这样 数字3 是当一个request请求过来时还没有到视图层,就要开始处理,数字1.是动态导入模块 2.是创建个 socket连接..详细就不写了。 现在我们假设websocet连接过来到这个层,已经建立个 socket对象,接下来的步骤就是要接收用户请求。 process_view 是在视图前调用,它这的目的就是用钩子,回调接收socket连接。此时我们应该就可以接收客户端发过来的数据了。就回到了第一个图的开胃菜哪。 用for 去取request.websocket对象,很多人应该没搞清楚,它为什么能无限制的for, 而不被结束。原因在这里 websocket这个对象的父类,写了个__iter__迭代对象,其实和客户端用的socket对象道理是一样的,要保持长连接,你就的while True. 总结: 大致整个流程是这个样子。 附一张自己分析的草图,留着自己回忆. 分析dwebsocket的源码过程 标签:websocket 加载 http 迭代 git .com 应该 cep 技术分享 原文地址:http://www.cnblogs.com/whf191/p/7069079.html
前言
开胃菜
分析开始
accept_websocket 源码,是这样。