Python websocket的示例(转帖)

https://www.jianshu.com/p/e3fe5805e51c

背景

目前看到实现websocket的框架的
- django的channels
- flask
- sanic
好奇,用python怎样写一个websokcet服务器,以及socket如何与应用框一起启动

后记

  1. accept 与recv是阻塞模式,调用时候,同时新开一个threading解决同步阻塞的问题
  2. while True 要写在 sock.accept() 之前,因为在要等不同的socket连接,如果写在这之后,只能有一个socket连接
  3. 首次连接通过http建立,之后直接互相通信 while True 同样要写在conn.recv(8094) 之前, 因为要不停的通信
  4. 整个socket通信要写两次 while True
  5. werkzeug与websocket同时启动, 在主进程内,各开一个子进程即可
    6.在此基础上可以按需扩展,如改成python3 的async写法 , 引用更高级别的库websocket或python3的protocol等。万变不离其宗,从python层面,这是比较底层的写法,其它的写法大多是在此基础上封装的。

第一版后端



作者:hugoren
链接:https://www.jianshu.com/p/e3fe5805e51c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/sidianok/p/13273909.html