JavaScript中WebSockets通信时JSON解析报错,请求排查问题
WebSocket后端推流失败问题排查解决
错误根源
前端监听WebSocket的message事件时,错误地尝试解构msg属性,但WebSocket消息事件对象的实际数据存储在data字段中。这会导致msg变量为undefined,执行JSON.parse(msg)时触发JSON解析错误(即截图中显示的Unexpected token u in JSON at position 0)。
修正后的前端代码
Socket.addEventListener("message", ({ data }) => { console.log(JSON.parse(data)); });
可选验证步骤
- 后端可添加日志确认客户端连接状态,确保消息能发送到在线客户端:
Websocket.Send = (msg) => { console.log('在线客户端数量:', Websocket.Socket.clients.size); Websocket.Socket.clients.forEach(client => { client.send(JSON.stringify(msg)); }); } - 前端也可先打印原始事件对象,直观确认数据位置:
Socket.addEventListener("message", (event) => { console.log('原始事件:', event); console.log(JSON.parse(event.data)); });
内容的提问来源于stack exchange,提问作者user19365766
相关产品推荐
相关产品推荐

