HTML5 WebSocket
HTML5 WebSocket è un inizio fornita dalla comunicazione full-duplex su un unico protocollo connessione TCP.
Nel API WebSocket, il browser e il server solo per fare un'azione di stretta di mano, poi, tra il browser e il server sulla formazione di un fast-track. È possibile trasferire dati direttamente tra loro.
Browser invia al server tramite richiesta JavaScript per stabilire una connessione WebSocket, viene stabilita la connessione, il client e il server può essere collegato direttamente lo scambio di dati via TCP.
Quando si ottiene la connessione Web Socket, è possibile inviare i dati al server tramite il metodosend (), e di ricevere i dati restituiti dal server onMessageevento.
La seguente API WebSocket viene utilizzato per creare oggetti.
var Socket = new WebSocket(url, [protocal] );
È possibile che questo codice di primo parametro URL, specificare il collegamento URL. Il secondo parametro è il protocollo facoltativo che specifica accettabile sub-protocollo.
immobili WebSocket
Questi sono l'oggetto attributi WebSocket. Supponiamo di utilizzare il codice qui sopra per creare un oggetto Socket:
proprietà | descrizione |
---|---|
Socket.readyState | Attributo di sola letturareadyState indica lo stato della connessione può avere i seguenti valori:
|
Socket.bufferedAmount | Attributo di sola letturabufferedAmount è stato send () sono posti in una coda di attesa per il trasferimento, ma non ha ancora emesso un UTF-8 byte di testo. |
evento WebSocket
Ecco l'oggetto eventi WebSocket. Supponiamo di utilizzare il codice qui sopra per creare un oggetto Socket:
evento | gestore di eventi | descrizione |
---|---|---|
aperto | Socket.onopen | Attivato quando viene stabilita la connessione |
messaggio | Socket.onmessage | Quando il client riceve i dati del server di attivazione |
errore | Socket.onerror | Esso viene attivato quando si verifica un errore di comunicazione |
vicino | Socket.onclose | Attiva quando la connessione chiusa |
metodo WebSocket
Ecco l'oggetto metodi WebSocket. Supponiamo di utilizzare il codice qui sopra per creare un oggetto Socket:
modo | descrizione |
---|---|
Socket.send () | Utilizzare la connessione per inviare i dati |
Socket.close () | Chiudi connessione |
esempio WebSocket
protocollo Natura WebSocket è un protocollo basato su TCP.
Al fine di stabilire una connessione WebSocket, il browser client avvia un server HTTP sarebbe prima di tutto desidero chiedere che questa richiesta e le solite richieste HTTP, contiene alcune informazioni di intestazione aggiuntive, in cui le informazioni di intestazione aggiuntiva "Aggiornamento: WebSocket" indica che si tratta di un protocollo di applicazione aggiornare richiesta HTTP, il server analizza le informazioni di intestazione aggiuntiva viene quindi generato un messaggio di risposta al client, il client di connessione WebSocket e viene stabilita del server, entrambe le parti possono, attraverso il collegamento di canale di trasmissione libero di informazioni, e questa connessione persiste fino a quando la parte attiva client o server-side per chiudere la connessione.
HTML e JavaScript client
Attualmente, la maggior parte dei browser supportano) interfacce (WebSocket, è possibile provare gli esempi nei seguenti browser: Chrome, Mozilla, Opera e Safari.
il contenuto dei file w3big_websocket.html
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</title> <script type="text/javascript"> function WebSocketTest() { if ("WebSocket" in window) { alert("您的浏览器支持 WebSocket!"); // 打开一个 web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket 已连接上,使用 send() 方法发送数据 ws.send("发送数据"); alert("数据发送中..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("数据已接收..."); }; ws.onclose = function() { // 关闭 websocket alert("连接已关闭..."); }; } else { // 浏览器不支持 WebSocket alert("您的浏览器不支持 WebSocket!"); } } </script> </head> <body> <div id="sse"> <a href="javascript:WebSocketTest()">运行 WebSocket</a> </div> </body> </html>
pywebsocket installazione
Prima di eseguire il programma di cui sopra, abbiamo bisogno di creare un servizio di supporto WebSocket. Da pywebsocket scaricare mod_pywebsocket, o il comando git uso per il download:
git clone https://github.com/google/pywebsocket.git
Supporto mod_pywebsocket ambiente python necessario
mod_pywebsocket di un estensioni Web Socket Apache HTTP, procedura di installazione sono i seguenti:Decomprimere il file scaricato.
Inserisci directorypywebsocket.
Run:
$ python setup.py build $ sudo python setup.py install
Vedere la documentazione:
$ pydoc mod_pywebsocket
Open Service
Eseguire il seguente comando nella directory/ mod_pywebsocket pywebsocket:
$ sudo python standalone.py -p 9998 -w ../example/
Il comando precedente si aprirà un numero di porta di servizio 9998, utilizzare la -w per impostare la echo_wsh.py gestore directory situata.
Ora siamo in grado di aprire il file w3big_websocket.html creato in precedenza nel browser Chrome. Se il browser supporta WebSocket (), fai clic su "Esegui WebSocket", si può vedere l'intero processo ogni passo della finestra pop-up, il processo di Gif demo:
Una volta che ci fermiamo il servizio, si aprirà "Connessione chiuso ...."