Come implementare un WebSocket in Python

Come implementare un WebSocket in Python

WebSocket è un protocollo di livello dell'applicazione che consente la comunicazione a due vie tra un client e un server. Il protocollo WebSocket funziona prima creando una stretta di mano e quindi un inquadramento dei messaggi implementato su TCP anziché su HTTP di base.

Websockets e altre tecnologie simili come SSE (eventi Server-Sent) e WEBRTC sono utili nelle applicazioni in cui il server deve mantenere una connessione aperta ai client connessi. Un eccellente esempio di websocket utilizzati nelle applicazioni è un'applicazione di chat, giochi multiplayer online e strumenti in tempo reale come analisi e strumenti di collaborazione.

Websockets ci fornisce una connessione bidirezionale a duplex completa tra il server e i client connessi sul Web. Ciò significa che sia il server che il client possono spingere i dati una volta che esiste una connessione stabilita.

In questo tutorial, non mi immergerò in profondità come Websockets lavoro. Invece, ti mostrerò come puoi usare Python per implementare una semplice applicazione utilizzando WebSocket.

Se desideri saperne di più su Http, websocket e sses, Dai un'occhiata agli altri tutorial su questo sito che spiegano le loro differenze.

NOTA: Prima di iniziare, supponiamo che tu abbia familiarità con i concetti di base di networking come le richieste HTTP e HTTP. Per implementare i concetti in questo tutorial con un grado di facilità, è necessario avere una conoscenza di base di programmazione Python e JavaScript di base.

Passaggio 1: configurazione dell'ambiente

Cominciamo a implementare un semplice server WebSocket per utilizzare il browser come client per connettersi al server.

È bene notare che lo scopo di questa implementazione non è quello di creare una massiccia applicazione, ma di darti una comprensione di base di come è possibile utilizzare Python e JavaScript per creare applicazioni WebSocket.

Per questo, dovremo avere Python installato, preferibilmente Python 3.6+.

Useremo anche il WebSocket pacchetto.

https: // websockets.PRIEDTHOCS.IO/EN/STABLE/INDICE.html

Una volta installato Python, utilizzare PIP per installare il pacchetto WebSocket utilizzando il comando di seguito:

PIP Installa WebSocket

Una volta che hai il Websockets pacchetto installato, possiamo iniziare a creare il server e un client per connetterci.

Passaggio 2: creazione del server

Inizia creando una directory in cui serviremo la chiamata di applicazione WebSocket.

All'interno della directory, crea un file e chiamalo server.Py

All'interno del server.File PY, aggiungi le seguenti righe di codice che implementano un semplice server su / url.

Importa asyncio
Importa websocket
# Crea gestore per ogni connessione
Async Def Handler (WebSocket, Path):
Data = Aspetta WebSocket.recv ()
Rispondi = f "Dati REGUITO AS: data!"
Aspetta WebSocket.Invia (risposta)
start_server = websockets.Servire (gestore, "localhost", 8000)
Asyncio.get_event_loop ().run_until_complete (start_server)
Asyncio.get_event_loop ().run_forever ()

All'interno del file del server, importiamo i pacchetti richiesti in questo caso, Asyncio, E Websockets.

Successivamente, creiamo un gestore che prende gli argomenti WebSocket e percorso. IL WebSocket Rappresenta l'URL del server (LocalHost: 8000). Il percorso è l'URI per il gestore nel nostro caso, l'URI è /.

Procediamo quindi ad attendere la connessione in arrivo e il messaggio. Con i dati ricevuti, implementiamo un'azione. Nel nostro caso, una semplice risposta con il contenuto dei dati ricevuti.

Passaggio 3: creazione di un client

Cerchiamo ora di implementare un semplice client per connetterci al server. Useremo la console del browser come cliente per preservare la semplicità del tutorial.

Crea un file e chiamalo client.html. All'interno del file, aggiungi il seguente codice:







Cliente WebSocker





Salva il file e aprilo nel browser.

Per verificare se la connessione funziona, fare clic sul pulsante e controllare la console per la risposta del server.

Una volta fatto clic sul pulsante, un messaggio viene inviato al server. Il server quindi risponde con il contenuto del messaggio, indicando così che viene stabilita la connessione.

Conclusione

Per questo tutorial, abbiamo visto come usare il Python Websockets pacchetto per implementare un semplice WebSocket connessione.