Stream ArrayBuffer websocket binary.js

时间:2014-05-31 11:38:22

标签: javascript binary websocket arraybuffer

我想要流式传输大量的ArrayBuffers。

  • 从客户端向服务器发送字符串并返回是没问题的!

  • 将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");我没有问题,并将所有数据都恢复。

为什么会这样?谢谢:))

1 个答案:

答案 0 :(得分:1)

通过将binaryType设置为arraybuffer来解决问题。

var myWebSocket = new WebSocket("ws://127.0.0.1");
myWebSocket.binaryType = "arraybuffer";