WebSocket

connessioni bidirezionali con il server

WebSocket è un oggetto utilizzabile nei programmi Javascript per creare un canale di comunicazione bidirezionale con un server remoto.

Usando questo oggetto è possibile sia inviare che ricevere i dati in maniera asincrona senza il bisogno di dover restare in attesa della risposta.

Esempio

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Richiesta via http</title> <script type="text/javascript"> var ws = new WebSocket("ws://esempio.org/wschat/chat"); ws.onopen = function(){ console.log("websocket aperto!"); }; ws.onmessage = function(message){ document.getElementById("ricezione").textContent += message.data + "\n"; }; function inviaAlServer(){ ws.send(document.getElementById("msg").value); document.getElementById("msg").value = ""; } function chiudiLaConnessione(){ ws.close(); } </script> </head> <body> <textarea id="ricezione" readonly></textarea><br/> <input id="msg" type="text" /> <button onClick="inviaAlServer()">invia!</button> <button onClick="chiudiLaConnessione()">chiudi</button> </body> </html>

Breve riferimento

On line sono disponibili diverse guide come ad esempio su MDN o su HTML.it.

Costruire questo oggetto richiede un solo parametro: l'indirizzo del WebSocket sul sever, di seguito riportiamo soltanto le tre funzioni essenziali:

onopen
è una funzione che viene chiamata quando si apre la connessione, non ha parametri
onmessage
è una funzione che viene chiamata quando arriva il messaggio, quando viene chiamata gli viene passato come parametro un oggetto, il testo del messaggio è nel campo "data"
close
da chiamare per terminare la connessione con il server