Файл JavaScript API для node.js, как отправить ArrayBuffer с данными через websocket - PullRequest
0 голосов
/ 22 февраля 2019

Привет. Я пытаюсь отправить и загрузить файл из клиента JavaScript на сервер node.js, и он на самом деле работает, клиент:

var ws = new WebSocket("ws://localhost");
ws.binaryType = "arraybuffer";
//file input code, it all works etc...
loader.onload = (e) {
   ws.send(e.target.result); //actually works and sends the arraybuffer
}
loader.readAsArrayBuffer(file/*not quoted here but you get the idea*/)

на стороне сервера не важен только базовый сервер веб-сокетов, что на самом деле получает массив буферов (в виде буфера).

Проблема: мне нужно также отправить файл имя вместе с данными, как я могу добавить файлзаголовок ArrayBuffer на стороне клиента и чтение его в узле?

1 Ответ

0 голосов
/ 22 февраля 2019

Вы можете просто обернуть ArrayBuffer в объект с именем файла или метаданными?т.е.

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

// the object to be passed by the socket
var filePayload = {
    fileName:'file.file',
    fileType:'xxx'
    // any othere metadata here
};

//file input code, it all works etc...
loader.onload = (e) => {
    // add the array buffer as a property in the object
    filePayload['data'] = e.target.result;
    ws.send(filePayload); 
}
loader.readAsArrayBuffer(file/*not quoted here but you get the idea*/)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...