Domanda

Come utilizzare i socket in JavaScript \ HTML?

Può essere utilizzando alcuni HTML5 cool?

Biblioteche? Tutorial? Articoli Blog?

È stato utile?

Soluzione

Altri suggerimenti

  

Come utilizzare i socket in JavaScript / HTML?

Non c'è possibilità di utilizzare i socket general-purpose in JS o HTML. Sarebbe un disastro di sicurezza, per uno.

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 normalmente essere facendo da interfaccia di scripting di un server web. Tuttavia è un relativamente semplice protocollo ; il mio Noddy endpoint Python SocketServer-based è stato solo un paio di pagine di codice.

In ogni caso, in realtà non esiste, ancora. Né le specifiche JavaScript lato né le specifiche di trasporto della rete sono inchiodati in giù, e non i browser supportano.

È possibile, tuttavia, utilizzare Flash, se disponibile per fornire lo script con un fallback fino WebSocket è ampiamente disponibile. di Gimite web-presa-js è un esempio di tale connessione. Tuttavia si sono soggetti alle stesse limitazioni di Flash Prese allora, vale a dire che il server deve essere in grado di sputare fuori una politica dei domini sul richiesta al porto presa, e spesso si hanno difficoltà con i proxy / firewall. (Prese Flash vengono effettuate direttamente;. Per qualcuno senza accesso IP pubblico diretto che può ottenere solo della rete attraverso un proxy HTTP, che non funziona)

A meno che non si ha realmente bisogno bassa latenza di comunicazione a due vie, si sta meglio attaccare con XMLHttpRequest per ora.

Credo che sia importante ricordare, ora che la questione è di oltre 1 anno di età, che Socket.IO ha dal momento che escono e sembra essere il modo principale per lavorare con prese nel browser ora; è inoltre compatibile con Node.js per quanto ne so.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top