websocket服务器源码
时间: 2023-09-03 19:01:58 浏览: 53
WebSocket是一种在Web应用程序中实现双向通信的协议,它允许客户端和服务器之间实时地进行数据交换。下面是一个简单的WebSocket服务器源码示例:
```python
import asyncio
import websockets
async def handle(websocket, path):
try:
while True:
data = await websocket.recv() # 接收客户端发送的数据
print(f"Received: {data}")
response = f"Server received: {data}"
await websocket.send(response) # 发送响应数据给客户端
print(f"Sent: {response}")
except websockets.exceptions.ConnectionClosed: # 处理客户端关闭连接的异常
print("Client disconnected")
start_server = websockets.serve(handle, "localhost", 8080)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
```
以上代码使用Python中的`asyncio`模块和`websockets`库创建了一个WebSocket服务器。服务器监听本地主机的8080端口,并通过`handle`函数处理每个客户端的连接。
在`handle`函数中,使用一个无限循环来接收客户端发送的数据,并通过`recv`方法获取数据。然后,服务器打印接收到的数据,并构建一个响应数据。通过`send`方法将响应数据发送给客户端。
代码中还添加了一个异常处理,用于捕获客户端关闭连接的异常。当客户端断开连接时,会打印相应的消息。
最后,通过调用`asyncio`模块的相关函数,启动服务器并保持运行状态。
这是一个简单的WebSocket服务器源码示例,可以根据实际需求进行更详细的功能扩展和优化。