在服务器端为每个WebSocket连接创建一个唯一标识符,并在每条发送的消息中包含此标识符。客户端收到消息后,可以根据标识符将它们分组并正确地显示。以下是Node.js示例代码:
// server side const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 });
function getUniqueID() { return Date.now().toString(36) + Math.random().toString(36).substr(2); }
wss.on('connection', function connection(ws) { const uniqueID = getUniqueID(); ws.id = uniqueID;
ws.on('message', function incoming(message) { const parsedMsg = JSON.parse(message); const sendMsg = { id: ws.id, content: parsedMsg.content, };
wss.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN && client.id !== ws.id) {
client.send(JSON.stringify(sendMsg));
}
});
}); });
// client side const socket = new WebSocket('ws://localhost:8080');
socket.addEventListener('message', function(event) { const parsedMsg = JSON.parse(event.data); const messageDiv = document.createElement('div'); messageDiv.innerText = parsedMsg.content; document.body.appendChild(messageDiv); });