webrepl — server WebREPL¶
Questo modulo espone la WebREPL di MicroPython: una REPL basata su WebSocket che consente ai client di connettersi al prompt interattivo di una scheda (e di trasferire file) tramite una connessione di rete. Una piccola pagina statica ospitata su micropython.org/webrepl funge da client JavaScript.
La WebREPL ascolta per impostazione predefinita sulla porta TCP 8266 e usa os.dupterm per duplicare la REPL sullo stream WebSocket. È supportato un solo client concorrente; ulteriori tentativi di connessione vengono rifiutati.
Esempio:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Funzioni¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Avvia il listener della WebREPL.
Se password è
None, la password viene caricata dawebrepl_cfg.py(creato dawebrepl_setup). Quandowebrepl_cfgnon può essere importato, viene stampato un avviso e il server non viene avviato.port seleziona la porta TCP su cui ascoltare.
accept_handler è il callable invocato quando un nuovo client TCP si connette. L’impostazione predefinita è
accept_conn, che esegue l’handshake WebSocket in un callback su socket in background. PassaNoneper eseguire il server in modalità foreground (equivalente astart_foreground).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Wrapper di comodo attorno a
startche esegue il loop di accettazione in modo sincrono in foreground finché un client non si connette.
- webrepl.stop() None¶
Chiude il socket in ascolto e qualsiasi connessione client attiva, e scollega la WebREPL dal terminale duplicato tramite
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Accetta una connessione TCP in attesa su listen_sock e completa l’handshake WebSocket. Se un client è già connesso, la nuova connessione viene rifiutata e viene restituito
False. In caso di upgrade riuscito, il WebSocket risultante viene incapsulato con_webrepl._webreple collegato come terminale duplicato.Questo è esposto principalmente affinché i chiamanti possano fornirlo come argomento accept_handler a
start.
- webrepl.server_handshake(cl) bool¶
Legge la richiesta HTTP sul socket appena accettato cl e risponde con le opportune intestazioni
Sec-WebSocket-Accept. RestituisceTruese il client ha richiesto un upgrade WebSocket valido,Falsealtrimenti (nel qual caso il chiamante in genere ricade sul servire il client HTML tramitesend_html).
- webrepl.send_html(cl) None¶
Risponde alla richiesta HTTP su cl con un documento HTML minimale che carica il client JavaScript della WebREPL da
static_hoste poi chiude il socket.
Costanti¶
- webrepl.DEBUG: int¶
Impostare a un valore diverso da zero per abilitare il tracciamento dettagliato delle richieste HTTP e degli handshake WebSocket su
sys.stdout. Il valore predefinito è0.
- webrepl.static_host: str¶
URL di base del client statico della WebREPL usato da
send_html. Il valore predefinito è"https://micropython.org/webrepl/". Può essere sovrascritto impostandoBASEinwebrepl_cfg.pyoppure riassegnando direttamente l’attributo del modulo.
- webrepl.listen_s¶
Il socket in ascolto attualmente attivo, oppure
Nonese il server è fermo. Impostato dastarte azzerato dastop.
- webrepl.client_s¶
Il socket del client attualmente connesso, oppure
Nonese nessun client è collegato. Impostato daaccept_conne azzerato dastop.