网站会员系统制作,个人网站域名申请,可以自己做装修效果图的网站,wordpress另一更新正在进行简述#xff1a; Python创建WebSocket服务器和客户端Python创建WebSocket服务器和JavaScript创建客户端Python 异步网络WebSocket应用 在本文中#xff0c;将讨论 WebSocket客户端和服务器之间的单个长期连接。 我将解释无状态 HTTP 协议的问题#xff0c;以及 WebSocket 如… 简述 Python创建WebSocket服务器和客户端Python创建WebSocket服务器和JavaScript创建客户端Python 异步网络WebSocket应用 在本文中将讨论 WebSocket客户端和服务器之间的单个长期连接。 我将解释无状态 HTTP 协议的问题以及 WebSocket 如何克服该问题并允许您创建响应式 Web 应用程序。 对于本文中的示例我将使用 Python 创建服务器和客户端。
WebSocket 简介
在传统的基于 Web 的通信中您使用超文本传输协议 (HTTP)。 HTTP 是一个请求。
为了使网页与来自 Web 服务器的数据保持最新Web 浏览器需要执行来自 Web 服务器的频繁请求。 这称为轮询。 在网页上的数据需要不断更新的情况下轮询的成本很高因为客户端和服务器总是忙于请求和响应。 另一方面如果服务器上的数据不经常变化或者以不规则的时间间隔变化则定期轮询是浪费的。 如果轮询频率降低重要的数据更新将无法在网络浏览器上及时更新。
简单服务器和客户端
服务器 web_server.py:
import asyncio
import websockets
async def handler(ws, path):data await ws.recv()reply fData received: {data}await ws.send(reply)
if __name__ __main__:start_server websockets.serve(handler, 127.0.0.1, 8081)asyncio.get_event_loop().run_until_complete(start_server)asyncio.get_event_loop().run_forever()命令行运行服务器
$ python web_server.py 客户端 web_client.py
import asyncio
import websockets
async def connect():async with websockets.connect(ws://127.0.0.1:8081/) as websocket:await websocket.send(hello world)print(fReuqest headers:\n{websocket.request_headers})response await websocket.recv()print(fResponse headers:\n{websocket.response_headers})print(response)
if __name__ __main__:asyncio.get_event_loop().run_until_complete(connect())命令行运行客户端
$ python web_client.py Reuqest headers:
Host: 127.0.0.1:8081
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: 1wX9ZDzx2c7PoKBhreA
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
User-Agent: Python/3.10 websockets/10.3
Response headers:
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: yBKlMEVMvp6dGL6qj4OH/T6zd5o
Sec-WebSocket-Extensions: permessage-deflate; server_max_window_bits12; client_max_window_bits12
Date: Mon, 03 Oct 2022 18:29:32 GMT
Server: Python/3.10 websockets/10.3
Data received: hello world创建Python_WebSocket 服务器
创建 Python_WebSocket 客户端
方式1
方式2
修改服务器向所有客户端广播
源代码
创建服务器和JavaScript客户端
源代码
异步网络WebSocket服务器
上传文件和接收文件 参阅一亚图跨际 参阅二亚图跨际