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之有容乃大的list(2)
Sep 15 Python
python处理Excel xlrd的简单使用
Sep 12 Python
python3设计模式之简单工厂模式
Oct 17 Python
numpy中的高维数组转置实例
Apr 17 Python
python实现彩色图转换成灰度图
Jan 15 Python
举例讲解Python常用模块
Mar 08 Python
python实现维吉尼亚加密法
Mar 20 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 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 VS ASP
2006/10/09 PHP
php foreach、while性能比较
2009/10/15 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
Python单例模式实例详解
2017/03/01 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
python多线程http压力测试脚本
2019/06/25 Python
python 搜索大文件的实例代码
2019/07/08 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
利用python进行文件操作
2020/12/04 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
求职者简历中的自我评价
2013/10/20 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
小学家长学校培训材料
2014/08/24 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记