2

websockify を介して、HTML5 ページから JSON-RPC サーバーに接続しています。

私のコードは、正規の websocket echo exampleに基づいています。擬似コードは次のとおりです。

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']バイナリではなく as で開くように変更し、リクエストを base64 エンコードすると、操作できる base64 文字列が返されます。ただし、JSON-RPC であるプレーン ASCII を送受信するだけと比較すると、帯域幅とエンコードの無駄のように思えます。

注意。HTML5 から JSON-RPC と対話する方法に関する別の提案も歓迎します。

4

0 に答える 0