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字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
详解Python3.1版本带来的核心变化
Apr 07 Python
Python访问纯真IP数据库脚本分享
Jun 29 Python
python+mongodb数据抓取详细介绍
Oct 25 Python
Django实现简单分页功能的方法详解
Dec 05 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
python实现简单加密解密机制
Mar 19 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
Python如何在循环内使用list.remove()
Jun 01 Python
Python实现天气查询软件
Jun 07 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 magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
Python Property属性的2种用法
2015/06/21 Python
Python脚本处理空格的方法
2016/08/08 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
Python异常处理操作实例详解
2018/08/28 Python
Python中创建二维数组
2018/10/17 Python
Python实现的特征提取操作示例
2018/12/03 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
高中化学教学反思
2014/01/13 职场文书
社区中秋节活动方案
2014/01/29 职场文书
网络研修随笔感言
2014/02/17 职场文书
村干部培训班主持词
2014/03/28 职场文书
酒会开场白大全
2015/06/01 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android