Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理来自websocket的onmessage事件数据_Javascript_Json_Websocket_Vert.x - Fatal编程技术网

Javascript 如何处理来自websocket的onmessage事件数据

Javascript 如何处理来自websocket的onmessage事件数据,javascript,json,websocket,vert.x,Javascript,Json,Websocket,Vert.x,我正在设置一个vert.x项目,在该项目中,我将通过websocket从基于Java的服务器向javascript客户端发送一段JSON 发送JSON的Vert.x服务器: vertx.eventBus().send("mongodb-persistor", collectionsQuery, new Handler<Message<JsonObject>>() { @Override public voi

我正在设置一个vert.x项目,在该项目中,我将通过websocket从基于Java的服务器向javascript客户端发送一段JSON

发送JSON的Vert.x服务器:

        vertx.eventBus().send("mongodb-persistor", collectionsQuery, new Handler<Message<JsonObject>>() {

            @Override
            public void handle(Message<JsonObject> data) {
                container.logger().info(data.body().encodePrettily());
                ws.write(new Buffer(data.body().toString()));
            }

        });
我得到了一个错误:

未捕获的语法错误:意外的标记o(索引):124socket.onmessage

我已经读过了,似乎这是因为JSON已经被解析了。因此,如果我不解析JSON,我实际上如何访问我的数据?如果我只是将event.data输出为字符串,那么得到的只是类型和大小,而不是控制台上记录的数据

编辑: 我还从下一行/有时/中得到错误“加载资源失败:服务器响应状态为404”,即使event.data仍然填充了正确的消息大小

警报(“从websocket接收的数据:+事件数据”)

非常感谢您的帮助,我希望这些信息足够完整!
谢谢:)

在vert.x中,我不应该返回包装在缓冲区中的JSON

相反,我使用了这种方法

vertx.eventBus(){
@凌驾
公共无效句柄(消息数据){
container.logger().info(data.body().toString());
ws.writeTextFrame(data.body().encode());
}
});
    socket.onmessage = function(event) {
    alert("Received data from websocket: " + event.data);
    var x = JSON.parse(event.data);
};
        vertx.eventBus().send("mongodb-persistor", collectionsQuery, new Handler<Message<JsonObject>>() {

        @Override
        public void handle(Message<JsonObject> data) {
            container.logger().info(data.body().toString());
            ws.writeTextFrame(data.body().encode());
        }

    });