2

我正在通过 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 对话的替代建议。

4

0 回答 0