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 22 Python
Zabbix实现微信报警功能
Oct 09 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
深入理解Python中的super()方法
Nov 20 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
Apr 19 Python
python爬取微信公众号文章
Aug 31 Python
python交易记录整合交易类详解
Jul 03 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
python的re模块使用方法详解
Jul 26 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
Python如何获取文件指定行的内容
May 27 Python
AI:如何训练机器学习的模型
Apr 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
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
python黑魔法之参数传递
2016/02/12 Python
Python Socket传输文件示例
2017/01/16 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
营销人才自我鉴定范文
2013/12/25 职场文书
简历的自我评价
2014/02/03 职场文书
法制宣传口号
2014/06/16 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
人力资源部工作计划
2019/05/14 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
Python基础之pandas数据合并
2021/04/27 Python
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL