Я пытаюсь отправить буфер в мой браузер через socket.io. Предположительно это поддерживается с 1.0.Проблема с отправкой буфера через Socket.IO
Серверный код:
var tempBuffer = new Buffer(10);
for (var i=0; i<10; i++) {
tempBuffer[i] = i;
}
io.sockets.emit('updateDepth', { image: true, buffer: tempBuffer });
код клиента:
socket.on('updateDepth', function(data) {
console.log("update depth: " + data.buffer + ", " + data.buffer.length);
});
Все выглядит хорошо на стороне клиента, за исключением того, что data.buffer является ArrayBuffer (не буфер), а длина не определена (ArrayBuffer, похоже, ничего не содержит).
Я пропустил что-то очевидное или это не то, как он должен работать? Большое спасибо!
Оперативник вопрос, является ли 'socket.io' действительно оборудован для обработки отправки и получения бинарных данных? В примерах, которые я видел, всегда были строки или JSON (другие вещи превратились в строку), но я не знаю, какие возможности «socket.io» в этом отношении. – jfriend00
Вы не можете отправить двоичный буфер через сокет io. Взгляните на [BinaryJS] (http://binaryjs.com/) –
Вы можете base64 закодировать свой буфер и отправить эту строку. – jfriend00