python websocket 服务端如何主动断开连接
时间: 2023-07-04 14:26:14 浏览: 511
在 Python 中可以使用 `websockets` 库来创建 WebSocket 服务端。要主动断开连接,可以使用 `WebSocketServerProtocol.close()` 方法。以下是一个示例代码:
```python
import asyncio
import websockets
async def handle_client(websocket, path):
try:
while True:
# 处理客户端发送的消息
message = await websocket.recv()
print(f"Received message: {message}")
# 根据消息内容判断是否要断开连接
if message == "close":
await websocket.close()
break
# 回复客户端消息
await websocket.send(f"Received message: {message}")
except websockets.exceptions.ConnectionClosedOK:
print("Connection closed")
start_server = websockets.serve(handle_client, "localhost", 8000)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
```
在上面的代码中,当客户端发送 `"close"` 消息时,服务端会主动断开连接。注意,`WebSocketServerProtocol.close()` 方法是一个异步方法,需要使用 `await` 关键字来等待其执行完成。
阅读全文