передача файлов с помощью JavaScript через веб-сокеты

привет я пытаюсь передать файлы. У меня есть некоторые программы, конвертирующие файлы в двоичные файлы и передающие их по сети с c ++. Мне было интересно, смогу ли я передавать файлы с помощью JavaScript и веб-сокетов? Будем благодарны за любые примеры того, как интегрировать мою программу на С ++ в javascript. Благодарю.

 DasBoot09 июл. 2012 г., 08:37
Мне также интересно, если это возможно.

Ответы на вопрос(2)

Решение Вопроса

Javascript имеет два новых двоичных типа: типизированные массивы (массивы) и BLOB-объекты (в основном файлы).

WebSockets поддерживает отправку и получение типизированных массивов и BLOB-объектов.

Для передачи данных между двумя браузерами, использующими WebSockets, вам потребуется сервер, к которому они оба будут подключаться (поддержка WebSocket в браузере является клиентом только на этом этапе).

Если у вас есть сервер на C ++, который обрабатывает передачу файлов, тогда вы сможете довольно легко добавить к нему поддержку сервера WebSocket. Вы можете найти реализации клиента и сервера WebSocket на этой странице:http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations

В JavaScript, чтобы установить соединение с сервером WebSocket, вы делаете что-то вроде этого:

ws = new WebSocket("ws://100.101.102.103");

Метод send () поддерживает обычные строки, типизированные массивы или большие двоичные объекты. Отправка типизированных массивов и больших двоичных объектов приведет к тому, что кадры будут получены сервером в виде двоичных кадров (код операции = 2).

ws.send(myTypedArray);

Для получения сообщений вы регистрируете обработчик сообщений:

ws.onmessage = function (evt) {
    console.log("Got ws message: " + evt.data);
};

Если сервер отправляет двоичный кадр / сообщение, то свойство данных onmessage события будет содержать типизированный массив или большой двоичный объект, в зависимости от значения атрибута binaryType. Вы можете изменить тип получаемых двоичных данных следующим образом:

ws.binaryType = "blob"; // or "arraybuffer"

То, что вы пытаетесь сделать, невозможно. WebSocket может работать только в режиме клиента; он не может принимать соединения от другого клиента WebSocket (например, другого браузера).

Можно подключить клиентов WebSocket друг к другу через сервер, но в этот момент он больше не является одноранговым, поэтому я не уверен, действительно ли это больше полезно или интересно.

Увидеть:Позволит ли Websockets сервер работать в браузере?

 DasBoot09 июл. 2012 г., 08:33
спасибо, если вы можете предоставить примеры того, как сделать это через сервер, это будет оценено. знак равно

Ваш ответ на вопрос