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的迭代器与生成器实例详解
Jul 16 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
Python 文件操作的详解及实例
Sep 18 Python
Python实现的直接插入排序算法示例
Apr 29 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
使用python模拟命令行终端的示例
Aug 13 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
Python猴子补丁知识点总结
Jan 05 Python
python如何调用百度识图api
Sep 29 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的论坛(1)
2006/10/09 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
PHP函数学习之PHP函数点评
2012/07/05 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python列表推导式的使用方法
2013/11/21 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
python读取Excel表格文件的方法
2019/09/02 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
python 变量初始化空列表的例子
2019/11/28 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
《影子》教学反思
2014/02/21 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
呐喊读书笔记
2015/06/30 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
TS 类型兼容教程示例详解
2022/09/23 Javascript