python使用websocket代码实现聊天室
时间: 2023-08-17 13:16:20 浏览: 153
以下是使用Python实现Websocket的简单聊天室的代码示例:
```python
import asyncio
import websockets
# 存储连接到聊天室的客户端
clients = set()
async def chat_server(websocket, path):
# 新客户端加入聊天室
clients.add(websocket)
try:
# 向聊天室的所有客户端发送欢迎消息
await asyncio.wait([client.send("欢迎加入聊天室!") for client in clients])
# 接受客户端发来的消息并广播给所有客户端
async for message in websocket:
await asyncio.wait([client.send(message) for client in clients])
finally:
# 客户端离开聊天室
clients.remove(websocket)
await asyncio.wait([client.send("有人离开了聊天室!") for client in clients])
# 运行聊天室服务器
start_server = websockets.serve(chat_server, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
```
这个简单的聊天室服务器使用了`websockets`库来实现Websocket通信。服务器在本地`localhost`的`8765`端口上监听客户端连接,每当有新的客户端连接时,就将其加入`clients`集合中,并向所有客户端发送欢迎消息。当客户端发送消息时,服务器会将该消息广播给所有客户端。客户端离开聊天室时,服务器会将其从`clients`集合中移除,并向所有客户端发送有人离开的消息。