1

たくさんのArrayBufferをストリーミングしたい。

  • クライアントからサーバーへの文字列の送信とその逆は問題ありません。

  • ArrayBuffer をサーバーに送信しても問題ありません

サーバーからクライアントへの ArrayBuffer の送信が機能していません。クライアントで空の ArrayBuffer を取得します => ArrayBuffer{}

サーバ:

var server = BinaryServer({port: 9000});
server.on('connection', function(client){
       client.on('stream', function(stream, meta){
       console.log(meta);
            stream.on('data', function(data){
                //console.log(data);
                stream.write(data);
            });
      });  
});

console.log(data) は埋められた配列を示しているので、これは機能します。

クライアント:

var wsStream = null;
var client = BinaryClient('ws://localhost:9000');
client.on('open', function(){
    wsStream = client.createStream("audio");

    wsStream.on('data', function(data){
          console.log(data);
    });
});

これはログに記録します: ArrayBuffer {}

だからデータはありません:(

wsStream.write(arrayBuffer); でデータを送信します。

配列 wsStream.write([0,2]); を送信した場合 または文字列 wsStream.write("Hello"); 私は問題なく、すべてのデータを取り戻しました。

なぜこうなった ?ありがとう :)

4

1 に答える 1

1

binaryType を arraybuffer に設定することで問題が解決しました。

var myWebSocket = new WebSocket("ws://127.0.0.1");
myWebSocket.binaryType = "arraybuffer";
于 2014-07-19T14:10:09.747 に答える