python实现WebSocket服务端过程解析

Winema ·
更新时间:2024-09-21
· 863 次阅读

一种类似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 socket通信编程实现文件上传代码实例python如何使用socketserver模块实现并发聊天python socket 聊天室实例代码详解Python socket模块方法实现详解python使用socket实现的传输demo示例【基于TCP协议】Python socket非阻塞模块应用示例Python socket 套接字实现通信详解对python中UDP,socket的使用详解Python socket聊天脚本代码实例



websocket Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号