python实现WebSocket服务端过程解析
作者:是在下陈某人啦 发布时间:2022-09-14 10:45:19
标签:python,websocket,服务,端
一种类似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'
}
}
运行截图:
服务端:
客户端:
github中还有5个例子,项目地址: https://github.com/CzaOrz/Pywss
如果觉得还不错,不妨give me start~鼓励下这个小码农QAQ
来源:https://www.cnblogs.com/czaOrz/p/11695695.html


猜你喜欢
- 目录为什么需要分区?分区的策略分区隐患为什么需要分区?当面对巨大的数据表的时候,至少有一件事情是确定的,表太大了以至于每次查询的时候我们没法
- 前言其实全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文。缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格
- 1.使用测量工具,量化性能才能改进性能,常用的timeit和memory_profiler,此外还有profile、cProfile、hot
- 第一次写博客,实属心血来潮。为什么要写这篇博客呢?原因如下1、有一次我想配置数据库端口号时,找不到对应的解决方案2、是时候有个地方可以记录一
- 在进制学习时候,细心的小伙伴不免都发现unicher函数的存在,没错能够经常看到的,也就是关于进制的转化,那肯定有小伙伴要开心起来了,因为进
- axios的二次封装视频讲解npm i axios //下载axios首先创建两个文件夹在src目录下;api和c
- JavaScript 框架和库可以说是开源项目中最庞大也是最累的类目了,目前在github 上这一类的项目是最多的,并且几乎每隔一段时间就会
- 一、模块&包简介模块:所谓模块就是一个.py文件,用来存放变量,方法的文件,便于在其他python文件中导入(通过import或fr
- 什么是PromisePromise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,
- python部分#!/usr/bin/env Python# coding=utf-8from ctypes import *from Py
- 前言在前程无忧上投递简历发现有竞争力分析,免费能看到匹配度评价和综合竞争力分数,可以做投递参考计算方式综合竞争力得分应该越高越好,匹配度评语
- python下os模块强大的重命名方法renames详解 在python中有很多强大的模块,其中我们经常要使用的就是OS模块,OS
- 我以centos 4.4 下面的mysql 5.0.33 手工编译版本为例说明:vi /usr/local/mysql/bin/m
- Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由byt
- Python字符编码目前计算机内存的字符编码都是Unicode,目前国内的windows操作系统采用的是gbk。python2默认的字符编码
- WordPress 的插件机制实际上只的就是这个 Hook 了,它中文被翻译成钩子,允许你参与 WordPress 核心的运行,是一个非常棒
- 简介说明本文介绍用Navicat添加字段(字符串类型)并设置默认值时的报错问题。问题描述在Java开发过程中,经常会遇到给已有的表添加字段的
- 博主在进行鼎食城毕业设计时,需要实现一个人脸识别登录功能,想到可以利用百度的人脸识别接口来完成,于是便去下载了百度的识别SDK,我用的是PH
- 1、安装 nvmcurl -o- https://raw.githubusercontent.com/creationix/nvm/v0.3
- 这最近在PJ的function库里看到的这个函数,感觉思路差了点,不过相对比较完美,只是闭合标签时的顺序问题,呵呵 修改一下数组arrTag