ciao sto cercando di trasferire file. Ho alcuni programmi per convertire file in binario e trasferirli su una rete con C++. Mi stavo chiedendo se sarei stato in grado di trasferire file con javascript e web socket? qualsiasi esempio su come integrare il mio programma C++ in javascript sarebbe apprezzato. Grazie.trasferimento di file con javascript tramite websocket
risposta
JavaScript dispone di due nuovi tipi di binari: array tipizzati (arraybuffers) e Blobs (file in fondo).
WebSockets supporta l'invio e la ricezione di array e blocchi digitati.
Per trasferire i dati tra due browser utilizzando WebSockets, è necessario un server che li colleghi entrambi (il supporto WebSocket del browser è solo client in questo momento).
Se si dispone di un server esistente in C++ che gestisce il trasporto di file, si dovrebbe essere in grado di aggiungere il supporto del server WebSocket in modo abbastanza semplice. È possibile trovare websocket client e server implementazioni in questa pagina: http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations
In JavaScript per stabilire una connessione a un server WebSocket si fa qualcosa di simile:
ws = new WebSocket("ws://100.101.102.103");
send() di supporto metodo stringhe normali, digitato array o BLOB. L'invio di array e blob digitati comporterà il frame (s) ricevuti dal server come frame binari (opcode = 2).
ws.send(myTypedArray);
Per ricevere i messaggi si registra un gestore di messaggi:
ws.onmessage = function (evt) {
console.log("Got ws message: " + evt.data);
};
Se il server invia un binario telaio/messaggio quindi la proprietà dei dati onMessage dell'evento conterrà sia una matrice tipizzata o blob seconda l'impostazione dell'attributo binaryType. È possibile modificare il tipo di dati binari ricevuti in questo modo:
ws.binaryType = "blob"; // or "arraybuffer"
Quello che stai cercando di fare non è possibile. WebSocket può funzionare solo in modalità client; non può accettare connessioni da un altro client WebSocket (come un altro browser).
È possibile collegare i client WebSocket tra loro tramite un server, ma a quel punto non è più realmente peer-to-peer, quindi non sono sicuro che sia davvero utile o interessante.
grazie, se è possibile fornire esempi su come farlo attraverso un server sarebbe apprezzato. =) – DasBoot
Sono anche interessato se questo è possibile. – DasBoot