使用JavaScript实时流式传输JSON数据

时间:2019-02-11 22:59:11

标签: javascript json live-streaming

我想使用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是否真的可以进行实时流传输?如果不是,是否有图书馆?或者我是否可以使用全新的解决方案更好?

最诚挚的问候

1 个答案:

答案 0 :(得分:1)

如果Unexpected token *建议,JSON解析器遇到一个星号,则您的JSON格式错误,因为它不是JSON中的有效字符(字符串之外)。

我建议检查收到的消息,并目视检查其是否为有效的JSON。像这样:

webSocket.onmessage = function(event) {
    console.log(event.data);
}

然后,您可以检查浏览器的开发人员控制台(通常是Mac上的Cmd-Shift-I或其他位置的F12),以查看实际收到的内容。