我正在通过 websockify 从 HTML5 页面连接到 JSON-RPC 服务器。
我的代码基于规范的 websocket echo 示例。伪代码如下:
在 HTML 部分:
<P id="testview"></P>
在脚本部分:
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; }
最终我想用 JSON 解析结果,但第一步是能够以未解析的方式显示它。
但是目前el
此代码生成的显示是[Object BLOB]
.
如何使其显示{ "method" : "blabla",
等,即接收数据的实际内容(这是人类可读的 ASCII)。
的输出console.log(evt.data)
是:
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
如果我将 WebSocket 更改为打开['base64']
而不是二进制文件,并且我对我的请求进行 base64 编码,那么我会返回一个我可以使用的 base64 字符串。然而,与仅发送和接收 JSON-RPC 的纯 ASCII 相比,这似乎浪费了带宽和编码。
注意。也欢迎任何关于如何从 HTML5 与 JSON-RPC 对话的替代建议。