2012-07-09 25 views
5

hola, estoy tratando de transferir archivos. Tengo algunos programas que convierten archivos a binarios y los transfieren a través de una red con C++. Me preguntaba si podría transferir archivos con javascripts y websockets. cualquier ejemplo sobre cómo integrar mi programa C++ en javascript sería apreciado. Gracias.transfiriendo archivos con javascript a través de websockets

+0

También estoy interesado si esto es posible. – DasBoot

Respuesta

7

Javascript tiene dos nuevos tipos binarios: arrays mecanografiadas (arraybuffers) y manchas (archivos, básicamente).

WebSockets admiten el envío y recepción de matrices y blobs tipados.

Para transferir datos entre dos navegadores usando WebSockets necesitarás un servidor para que ambos se conecten (el soporte del navegador WebSocket es cliente solamente en este punto).

Si tiene un servidor existente en C++ que maneja el transporte de archivos, entonces debería poder agregar soporte para el servidor WebSocket con bastante facilidad. Usted puede encontrar de cliente y servidor implementaciones WebSocket en esta página: http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations

En JavaScript para establecer una conexión con un servidor de WebSocket haces algo como esto:

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

El send() de apoyo método de cadenas normales, mecanografiado matrices o blobs. El envío de arrays y blobs tipados dará como resultado los marcos recibidos por el servidor como marcos binarios (opcode = 2).

ws.send(myTypedArray); 

Para recibir los mensajes que se registre un controlador de mensajes:

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

Si el servidor envía una trama/mensaje binario entonces la propiedad de los datos onmessage del evento será contener un conjunto de tipos o burbuja en función de la configuración del atributo binaryType. Puede cambiar el tipo de datos binarios que se reciben de esta manera:

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

Lo que estás tratando de hacer no es posible. WebSocket solo puede operar en modo cliente; no puede aceptar conexiones de otro cliente WebSocket (como otro navegador).

Es posible enlazar clientes WebSocket entre sí a través de un servidor, pero en ese punto ya no es realmente igual a igual, por lo que no estoy seguro de si eso es realmente útil o interesante.

Ver: Will Websockets allow a server to run in the browser?

+1

gracias, si puede dar ejemplos sobre cómo hacerlo a través de un servidor, lo agradecería. =) – DasBoot

Cuestiones relacionadas