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 相关文章推荐
跟老齐学Python之深入变量和引用对象
Sep 24 Python
python利用正则表达式提取字符串
Dec 08 Python
Tensorflow简单验证码识别应用
May 25 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
对numpy中轴与维度的理解
Apr 18 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
python scrapy爬虫代码及填坑
Aug 12 Python
python网络爬虫 Scrapy中selenium用法详解
Sep 28 Python
python定义类的简单用法
Jul 24 Python
Django开发RESTful API实现增删改查(入门级)
May 10 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
Python排序算法之选择排序定义与用法示例
2018/04/29 Python
python xpath获取页面注释的方法
2019/01/14 Python
python groupby 函数 as_index详解
2019/12/16 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
python实现TCP文件传输
2020/03/20 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
机电一体化职业规划书
2014/01/07 职场文书
给客户的道歉信
2014/01/13 职场文书
通信研究生自荐信
2014/02/01 职场文书
政治思想表现评语
2014/05/04 职场文书
社区工作者演讲稿
2014/05/23 职场文书
校园绿化美化方案
2014/06/08 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers