2016-07-01 10 views
0

node12sのWebSocketサーバーにwsモジュールを使用しています。サーバー側では、私は、クライアント側(最新のChromeとFirefoxの両方)に、データは次のように受け取っている、しかし、私は非常に多く、このようなコードを使用してクライアントに送信Uint8ArrayArrayBufferとして送信されたデータがBlobとして受信されています

var data = new Uint8Array([1, 2, 3, 4, 5]); 
clientSock.send(data, { 
    binary: true 
}); 

を持っていますBlobオブジェクトです。 FileReader APIを使用してこれを処理してUint8Arrayにすることができます。しかし、私はそれを最初にArrayBufferとして受け取りたいと思います。これどうやってするの?

答えて

1

私がこの質問を書いたのと同じように、私は自分の答えを見つけました。 MDN documentation for WebSocketによれば、"blob"または"arraybuffer"のいずれかに設定する必要があるbinaryTypeプロパティがあり、データの受信形式を決定します。予想されるようにようにクライアント側のコードを変更することにより、

var sock = new WebSocket("<the server address>"); 
sock.binaryType = "arraybuffer"; 

次にサーバからのすべてのバイナリデータは、ArrayBuffersとして受信されます。

関連する問題