【发布时间】:2014-11-16 12:49:57
【问题描述】:
我正在设置一个 vert.x 项目,在该项目中,我通过 websocket 从基于 Java 的服务器向 javascript 客户端发送 JSON 的 sn-p。
发送 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()));
}
});
在控制台输出的数据被发送:
{ “收藏”:[“AAPL”、“AZN”、“GOOG”、“YHOO”、“system.indexes”]、 “状态”:“好的” }
当我在客户端收到这个时:
socket.onmessage = function(event) {
alert("Received data from websocket: " + event.data);
var x = JSON.parse(event.data);
};
我收到了错误:
Uncaught SyntaxError: Unexpected token o (index):124socket.onmessage
我已经阅读过,似乎这是因为 JSON 已经被解析了。因此,如果我不解析 JSON,我如何实际访问我的数据?如果我只是将 event.data 输出为字符串,我得到的只是类型和大小,而不是控制台上记录的数据。
编辑: 即使 event.data 仍然填充了正确的消息大小,我也会从以下行 /sometimes/ 中收到错误“加载资源失败:服务器响应状态为 404”。
alert("从 websocket 接收到数据:" + event.data);
感谢任何帮助,我希望这些信息是自包含的! 谢谢:)
【问题讨论】:
标签: javascript json websocket vert.x