python实现WebSocket服务端过程解析

yipeiwu_com5年前Python基础

一种类似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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python操作MongoDB数据库PyMongo库使用方法

引用PyMongo 复制代码 代码如下: >>> import pymongo 创建连接Connection 复制代码 代码如下: >>> impo...

对tensorflow 的模型保存和调用实例讲解

我们通常采用tensorflow来训练,训练完之后应当保存模型,即保存模型的记忆(权重和偏置),这样就可以来进行人脸识别或语音识别了。 1.模型的保存 # 声明两个变量 v1 = t...

Python使用redis pool的一种单例实现方式

本文实例讲述了Python使用redis pool的一种单例实现方式。分享给大家供大家参考,具体如下: 为适应多个redis实例共享同一个连接池的场景,可以类似于以下单例方式实现:...

python+selenium识别验证码并登录的示例代码

python+selenium识别验证码并登录的示例代码

由于工作需要,登录网站需要用到验证码。最初是研究过验证码识别的,但是总是不能获取到我需要的那个验证码。直到这周五,才想起这事来,昨天顺利的解决了。 下面正题: python版本:3....

Django 浅谈根据配置生成SQL语句的问题

想要根据django中的模型和配置生成SQL语句,需要先进行一定的设置: 首先需要在你的app文件夹中进入setting.py文件,里面有一个DATABASES,进行设置数据库的配置信息...