python实现WebSocket服务端过程解析


Posted in Python onOctober 18, 2019

一种类似Flask开发的WebSocket-Server服务端框架,适用python3.X

1、安装模块Pywss

pip install pywss

2、搭建简易服务器

2.1 服务端代码

代码简介

route: 注册请求路径

example_1(request, data):

request: socket句柄,能够发送和接收数据接。发送数据request.ws.send(data),收数据request.ws_recv(1024)

data: 客户端发送的数据存于此处

from pywss import Pyws, route

@route('/test/example/1')
def example_1(request, data):
  return data + ' - data from pywss'

if __name__ == '__main__':
  ws = Pyws(__name__, address='127.0.0.1', port=8866)
  ws.serve_forever()

2.2 客户端代码

客户端代码,建议直接在浏览器中运行,eg: Chorme打开新标签 -> F12 -> console
代码简介

WebSocket(ws_url): 发起协议升级为WebSocket连接请求,ws_url路径不要写错咯,要与服务端中的route()中注册路径对应起来

ws.onmessage: 当有数据传递过来时,会执行此函数

ws.onclose: 当连接断开时,会执行此函数

ws.onopen: 当连接建立的时候,会执行此函数

ws = new WebSocket("ws://127.0.0.1:8866/test/example/1");
ws.onmessage = function (ev) {
  console.log(JSON.parse(ev.data));
}
ws.onclose = function (ev) {
  console.log('Connect Closed')
}
ws.onopen = function() {
  if (ws.readyState === WebSocket.OPEN) {
    ws.send('hello, pywss!') // you will get 'hello, pywss! - data from pywss'
  }
}

运行截图:

服务端:

python实现WebSocket服务端过程解析

客户端:

python实现WebSocket服务端过程解析

github中还有5个例子,项目地址: https://github.com/CzaOrz/Pywss

如果觉得还不错,不妨give me start~鼓励下这个小码农QAQ

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
linux下python抓屏实现方法
May 22 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
python实现kmp算法的实例代码
Apr 03 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
基于python实现检索标记敏感词并输出
May 07 Python
django 模版关闭转义方式
May 14 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
Python3的进程和线程你了解吗
Mar 16 Python
django实现支付宝支付实例讲解
Oct 17 #Python
python通过实例讲解反射机制
Oct 17 #Python
python集合常见运算案例解析
Oct 17 #Python
Pandas聚合运算和分组运算的实现示例
Oct 17 #Python
18个Python脚本可加速你的编码速度(提示和技巧)
Oct 17 #Python
python numpy中cumsum的用法详解
Oct 17 #Python
python hashlib加密实现代码
Oct 17 #Python
You might like
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
详解a++和++a的区别
2017/08/30 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Python文件和流(实例讲解)
2017/09/12 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
Python深度优先算法生成迷宫
2018/01/22 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Python如何将装饰器定义为类
2020/07/30 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
考试作弊被抓检讨书
2014/10/02 职场文书
小英雄雨来观后感
2015/06/09 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书