根据给定任务,审查这个 AI 生成的浏览器聊天辅助函数。
使用已有安全会话和认证消息加入一个已授权房间,只在收到加入确认后发布,安全渲染文本,并限制待处理工作。
JavaScript
export function createChat(roomId, token) {
let socket; const pending = [];
function open() {
socket = new WebSocket(`wss://chat.example/ws?token=${token}`);
socket.addEventListener('open', () => {
socket.send(JSON.stringify({ type: 'join', roomId }));
for (const data of pending) socket.send(data);
});
socket.addEventListener('message', ({ data }) => {
const message = JSON.parse(data);
const item = document.createElement('p');
item.textContent = message.text;
document.querySelector('#feed').append(item);
});
}
open();
return {
send(text) {
const data = JSON.stringify({ type: 'publish', roomId, text });
if (socket.readyState === WebSocket.OPEN) socket.send(data);
else pending.push(data);
},
close() { socket.close(1000, 'done'); },
}; }
生成代码仅作示例,不代表任何特定模型