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中规范定义命名空间的一些建议
Jun 04 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Python切片操作实例分析
Mar 16 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
python把转列表为集合的方法
Jun 28 Python
python 列表推导式使用详解
Aug 29 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
QML实现钟表效果
Jun 02 Python
解决pip install psycopg2出错问题
Jul 09 Python
Python json格式化打印实现过程解析
Jul 21 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下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
php上传图片类及用法示例
2016/05/11 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
新闻稿格式范文
2015/07/18 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python