给我一个python websockets案例
时间: 2023-04-01 19:02:23 浏览: 61
可以参考以下代码:
import asyncio
import websockets
async def hello(websocket, path):
name = await websocket.recv()
print(f"Received {name}")
greeting = f"Hello {name}!"
await websocket.send(greeting)
print(f"Sent {greeting}")
async def main():
async with websockets.serve(hello, "localhost", 8765):
await asyncio.Future() # run forever
asyncio.run(main())
相关问题
python websockets
Python WebSockets是一个用于在Python中构建WebSockets服务器和客户端的库。WebSockets是一种支持双向通信的网络协议,可用于实现实时通信应用程序,如聊天室、游戏和在线协作工具等。
使用Python WebSockets,我们可以轻松地创建WebSockets服务器和客户端,以便与多个客户端进行通信,并在任何时候向它们发送消息。此外,该库还支持异步I/O模型,这意味着我们可以同时处理多个客户端连接,而无需为每个连接都分配一个线程或进程。
以下是一个简单的示例代码,展示如何使用Python WebSockets创建一个简单的聊天服务器:
```
import asyncio
import websockets
async def handle_client(websocket, path):
async for message in websocket:
print(f"Received message: {message}")
await websocket.send(f"Echoing back your message: {message}")
async def start_server():
server = await websockets.serve(handle_client, "localhost", 8000)
print(f"Server started at ws://{server.sockets[0].getsockname()[0]}:{server.sockets[0].getsockname()[1]}")
asyncio.get_event_loop().run_until_complete(start_server())
asyncio.get_event_loop().run_forever()
```
python websockets启动多个服务
要启动多个 Python WebSockets 服务,您可以使用 Python 的 asyncio 库。您可以编写一个包含多个 WebSocket 服务的 Python 程序,并使用 asyncio 库来异步运行它们。
以下是一个示例程序,它启动了两个 WebSocket 服务,一个在端口 8765,另一个在端口 8766:
```python
import asyncio
import websockets
async def server1(websocket, path):
# 服务器1的逻辑
...
async def server2(websocket, path):
# 服务器2的逻辑
...
async def main():
server1_task = websockets.serve(server1, "localhost", 8765)
server2_task = websockets.serve(server2, "localhost", 8766)
await asyncio.gather(server1_task, server2_task)
asyncio.run(main())
```
在上面的示例中,`server1()` 和 `server2()` 是两个 WebSocket 服务的逻辑函数。`websockets.serve()` 函数用于创建一个 WebSocket 服务器,并将其绑定到指定的 IP 地址和端口。然后,使用 `asyncio.gather()` 函数将两个 WebSocket 服务器任务一起启动。
您可以根据需要添加更多的 WebSocket 服务,只需创建一个新的逻辑函数并使用 `websockets.serve()` 函数创建一个新的服务器即可。