如何使用WebSoket来实现聊天室
时间: 2024-03-11 08:48:27 浏览: 47
使用webSocket实现聊天室
使用WebSocket实现聊天室需要以下几个步骤:
1. 在服务器端启动WebSocket服务。
2. 在客户端使用JavaScript连接WebSocket服务。
3. 客户端发送消息到服务器端,服务器端将消息广播给其他客户端。
4. 客户端接收服务器端广播的消息并显示在界面上。
以下是一个简单的示例代码:
服务器端:
```python
import asyncio
import websockets
async def handler(websocket, path):
async for message in websocket:
# 接收客户端发送的消息
# 广播消息给其他客户端
for client in clients:
if client != websocket:
await client.send(message)
async def start_server():
async with websockets.serve(handler, "localhost", 8000):
await asyncio.Future() # 保持服务器运行
clients = set()
asyncio.get_event_loop().run_until_complete(start_server())
```
客户端:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>WebSocket Chat</title>
</head>
<body>
<input type="text" id="message">
<button onclick="send()">发送</button>
<hr>
<ul id="messages"></ul>
<script>
const socket = new WebSocket("ws://localhost:8000/");
socket.onmessage = event => {
// 接收服务器端广播的消息
// 将消息显示在界面上
const message = document.createElement("li");
message.textContent = event.data;
document.querySelector("#messages").appendChild(message);
};
function send() {
const message = document.querySelector("#message").value;
socket.send(message); // 发送消息到服务器端
document.querySelector("#message").value = "";
}
</script>
</body>
</html>
```
这段代码实现了一个简单的聊天室,每个客户端输入消息后发送到服务器端,服务器端将消息广播给其他客户端。
阅读全文