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中的集合类型操作符
Aug 19 Python
Python简单实现enum功能的方法
Apr 25 Python
浅谈Python的文件类型
May 30 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
Python交互式图形编程的实现
Jul 25 Python
python如何获取apk的packagename和activity
Jan 10 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
Python版中国省市经纬度
Feb 11 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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实现文件下载详解
2014/11/27 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python中文竖排显示的方法
2015/07/28 Python
python中kmeans聚类实现代码
2018/02/23 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python 实现多维数组转向量
2019/11/30 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
生产部经理岗位职责
2013/12/16 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
学生安全承诺书
2014/05/22 职场文书
服务理念口号
2014/06/11 职场文书
2014年协会工作总结
2014/11/22 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA