如何使用实际包含ASCII文本的Javascript blob?

时间:2015-05-27 13:39:57

标签: javascript json-rpc websockify

我通过websockify从HTML5页面连接到JSON-RPC服务器。

我的代码基于canonical websocket echo example。伪代码如下:

在HTML部分:

el = document.getElementById("testview");
var sock = new WebSocket("ws://localhost:5555", ['binary'] );
sock.onopen = function(evt) { onOpen(evt) };      // sends request
sock.onmessage = function(evt) { el.innerHTML = evt.data; }

在脚本部分:

el

最终我想让JSON解析结果,但第一步是能够显示未解析的结果。

但目前,此代码在[Object BLOB]中生成的显示为{ "method" : "blabla",

如何显示console.log(evt.data)等,即接收数据的实际内容(人类可读的ASCII)。

Blob {} size: 74 type: "" __proto__: Blob constructor: Blob() { [native code] } size: (...) get size: () { [native code] } slice: slice() { [native code] } type: (...) get type: () { [native code] } __proto__: Object 的输出是:

['base64']

如果我将WebSocket改为打开为[ { "ORDER": 1, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 07 AM", "UV_VALUE": 0 }, { "ORDER": 2, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 08 AM", "UV_VALUE": 1 }, { "ORDER": 3, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 09 AM", "UV_VALUE": 1 }, { "ORDER": 4, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 10 AM", "UV_VALUE": 2 }, { "ORDER": 5, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 11 AM", "UV_VALUE": 3 }, { "ORDER": 6, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 12 PM", "UV_VALUE": 7 }, { "ORDER": 7, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 01 PM", "UV_VALUE": 6 }, { "ORDER": 8, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 02 PM", "UV_VALUE": 6 }, { "ORDER": 9, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 03 PM", "UV_VALUE": 7 }, { "ORDER": 10, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 04 PM", "UV_VALUE": 5 }, { "ORDER": 11, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 05 PM", "UV_VALUE": 3 }, { "ORDER": 12, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 06 PM", "UV_VALUE": 1 }, { "ORDER": 13, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 07 PM", "UV_VALUE": 0 }, { "ORDER": 14, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 08 PM", "UV_VALUE": 0 }, { "ORDER": 15, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 09 PM", "UV_VALUE": 0 }, { "ORDER": 16, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 10 PM", "UV_VALUE": 0 }, { "ORDER": 17, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 11 PM", "UV_VALUE": 0 }, { "ORDER": 18, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 12 AM", "UV_VALUE": 0 }, { "ORDER": 19, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 01 AM", "UV_VALUE": 0 }, { "ORDER": 20, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 02 AM", "UV_VALUE": 0 }, { "ORDER": 21, "ZIP": 19021, "DATE_TIME": "MAY/27/2015 03 AM", "UV_VALUE": 0 } ] 而不是二进制,并且我对我的请求进行了base64编码,那么我会找回一个我能够使用的base64字符串。然而,与仅发送和接收JSON-RPC的纯ASCII相比,这似乎浪费了带宽和编码。

NB。关于如何从HTML5与JSON-RPC对话的任何其他建议也是受欢迎的。

0 个答案:

没有答案