我想使用JavaScript将以JSON格式格式化的遥测数据从websocket实时传输到浏览器。 使用本地c和端口8080上的websocketd包装器在服务器XXXX上创建了一个websocket。客户端(IP:YYYY)应通过端口80(https://X.X.X.X:80)上的https连接到同一台服务器,并应接收javascript代码告诉它从websocket(ws:// XXXX:8080)获取实时流数据,并使用此流中的值刷新网站上的某些值。
数据示例如下:
{
"name of system": {
"RSSI": {
"rssi": "0",
"adc1": "0.00",
"adc2": "0.00",
"rxBatt": "0.00",
"swr": "0"
},
"ASS": {
"airspeed": "0.00"
}
}
}
{...}
and so on...
此帧应重复,例如间隔为500毫秒,并且没有空白和换行符。
我已经尝试使用JSON.parse()对此进行解析,但是我的浏览器控制台返回以下错误:“ Uncaught SyntaxError:Unexpected token *”或“ Unexpected token {”。尽管我检查了几次,这是否是由于错误实现的JSON代码造成的?
我的问题现在是:JSON.parse是否真的可以进行实时流传输?如果不是,是否有图书馆?或者我是否可以使用全新的解决方案更好?
最诚挚的问候
答案 0 :(得分:1)
如果Unexpected token *
建议,JSON解析器遇到一个星号,则您的JSON格式错误,因为它不是JSON中的有效字符(字符串之外)。
我建议检查收到的消息,并目视检查其是否为有效的JSON。像这样:
webSocket.onmessage = function(event) {
console.log(event.data);
}
然后,您可以检查浏览器的开发人员控制台(通常是Mac上的Cmd-Shift-I或其他位置的F12),以查看实际收到的内容。