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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
python实现俄罗斯方块
Jun 26 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
pycharm 解除默认unittest模式的方法
Nov 30 Python
python opencv实现图像边缘检测
Apr 29 Python
Python3.5文件修改操作实例分析
May 01 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
python tqdm库的使用
Nov 30 Python
Python使用MapReduce进行简单的销售统计
Apr 22 Python
Python代码实现双链表
May 25 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
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
建立动态的WML站点(一)
2006/10/09 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php实现单链表的实例代码
2013/03/22 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
php微信开发之图片回复功能
2018/06/14 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
JS实现多功能计算器
2020/10/28 Javascript
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Python装饰器用法实例总结
2018/05/26 Python
Apache部署Django项目图文详解
2019/07/30 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
生日宴会答谢词
2014/01/09 职场文书
便利店的创业计划书
2014/01/15 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技