2009-11-15 15 views
70

Come utilizzare i socket in JavaScript \ HTML?Come utilizzare i socket in JavaScript HTML?

Potrebbe utilizzare un HTML5 interessante?

Librerie? Esercitazioni? Articoli sul blog?

+0

Cosa stai cercando di fare? Quale browser vuoi supportare? –

+0

Suppongo che tu stia facendo riferimento a Web Sockets –

+0

Chrome, Firefox – Rella

risposta

52
+1

: 'bobince' ha fornito un semplice tutorial su questa pagina: P –

+0

@Yea, lo stesso sentimento qui. –

+3

Sì, quell'utente sarebbe presumibilmente il proprio Jonas Jacobi di Kaazing. Spesso si apre ovunque WebSocket è menzionato! Non trovo abbastanza Kaazing TBH, seduto su websocket.org per promuovere quella che sembra essere una soluzione client-e-server monolitica e non-realmente-libera che ha il supporto WebSocket come una parte apparentemente piuttosto piccola di ciò che effettivamente fa. Non lo so, potrebbe essere una buona soluzione, ma non mi sento del tutto a mio agio con il marketing. [modificato, quindi dopo la risposta di okw] – bobince

70

Come utilizzare i socket in JavaScript/HTML?

Non è possibile utilizzare socket generici in JS o HTML. Sarebbe un disastro per la sicurezza, per esempio.

C'è WebSocket in HTML5. Il lato client è abbastanza banale:

socket= new WebSocket('ws://www.example.com:8000/somesocket'); 
socket.onopen= function() { 
    socket.send('hello'); 
}; 
socket.onmessage= function(s) { 
    alert('got reply '+s); 
}; 

Avrete bisogno di un applicazione presa specializzata sul lato server per prendere le connessioni e fare qualcosa con loro; non è qualcosa che dovresti fare normalmente dall'interfaccia di scripting di un server web. Tuttavia è un relatively simple protocol; il mio endpoint basato su SocketServer Python era solo un paio di pagine di codice.

In ogni caso, in realtà non esiste ancora. Né le specifiche lato JavaScript né le specifiche di trasporto di rete sono inchiodate e nessun browser lo supporta.

È tuttavia possibile utilizzare Flash, laddove disponibile, per fornire il proprio script con un fallback finché WebSocket non è ampiamente disponibile. Gimite web-socket-js è un esempio gratuito di tale. Tuttavia, sei soggetto alle stesse limitazioni di Flash Sockets, ovvero che il tuo server deve essere in grado di sputare una politica di domini su richiesta alla porta socket, e spesso avrai difficoltà con proxy/firewall. (I socket flash vengono creati direttamente; per qualcuno senza accesso IP pubblico diretto che può uscire dalla rete solo tramite un proxy HTTP, non funzioneranno.)

A meno che non sia davvero necessaria la comunicazione bidirezionale a bassa latenza, per il momento, è meglio attenersi a XMLHttpRequest.

+0

Quali tipi di associazioni WS supportano html5? – Rella

+0

Se si intende che aspetto avranno gli oggetti WebSocket nel browser, resta ancora da vedere, ma le specifiche (http://www.w3.org/TR/websockets/) non sono cambiate molto recentemente. Se per WS Bindings stai parlando di Web Services, allora nessuno: WebSocket non parlerà SOAP o qualsiasi altro protocollo preesistente. – bobince

+0

Si dice "Non c'è alcuna possibilità di usare socket general-purpose in JS o HTML, sarebbe un disastro per la sicurezza, per uno." ma per quanto riguarda le applicazioni phonegap o phonegap? HTML + js non è solo necessario per i browser standard. – obayhan

43

Penso che sia importante menzionare, ora che questa domanda ha più di 1 anno, che Socket.IO è uscito e sembra essere il modo principale di lavorare con i socket nel browser ora; è anche compatibile con Node.js per quanto ne so.

+2

OK. Sono passati quasi 6 anni. Sono cambiati gli standard? – Arin

Problemi correlati