import asyncio
import websockets
# 定义处理连接的函数
async def echo(websocket, path):
async for message in websocket:
print(f"Received message: {message}")
await websocket.send(f"Echo: {message}")
# 启动WebSocket服务器
async def main():
async with websockets.serve(echo, "localhost", 8765):
print("Server started on ws://localhost:8765")
await asyncio.Future() # 运行直到程序被停止
# 运行事件循环
if __name__ == "__main__":
asyncio.run(main())
导入模块:
asyncio
:用于编写异步代码,支持并发操作。websockets
:用于创建和管理WebSocket连接。定义处理连接的函数 echo
:
websocket
:表示当前的WebSocket连接。path
:表示客户端请求的路径(通常不使用)。async for
循环接收客户端发送的消息,并将接收到的消息加上前缀 "Echo: "
后再发送回客户端。启动WebSocket服务器:
websockets.serve(echo, "localhost", 8765)
:在本地主机的8765端口上启动WebSocket服务器,并指定 echo
函数来处理每个连接。await asyncio.Future()
:让事件循环一直运行,直到程序被显式停止。运行事件循环:
asyncio.run(main())
来启动主协程,从而启动WebSocket服务器。这个示例展示了如何创建一个简单的WebSocket服务器,它会接收客户端的消息并将其原样返回。
上一篇:python 二维码
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站