Javascript 如何处理来自websocket的onmessage事件数据
我正在设置一个vert.x项目,在该项目中,我将通过websocket从基于Java的服务器向javascript客户端发送一段JSON 发送JSON的Vert.x服务器: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
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());
}
});