webrepl — WebREPL-server¶
Deze module stelt de MicroPython WebREPL beschikbaar: een op WebSocket gebaseerde REPL waarmee clients via een netwerkverbinding verbinding kunnen maken met de interactieve prompt van een board (en bestanden kunnen overdragen). Een kleine statische pagina die wordt gehost op micropython.org/webrepl fungeert als de JavaScript-client.
De WebREPL luistert standaard op TCP-poort 8266 en gebruikt os.dupterm om de REPL te dupliceren naar de WebSocket-stream. Slechts één gelijktijdige client wordt ondersteund; verdere verbindingspogingen worden geweigerd.
Voorbeeld:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Functies¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Start de WebREPL-listener.
Als password gelijk is aan
None, wordt het wachtwoord geladen uitwebrepl_cfg.py(gemaakt doorwebrepl_setup). Wanneerwebrepl_cfgniet kan worden geïmporteerd, wordt een waarschuwing afgedrukt en wordt de server niet gestart.port selecteert de TCP-poort waarop wordt geluisterd.
accept_handler is het callable dat wordt aangeroepen wanneer een nieuwe TCP-client verbinding maakt. De standaard is
accept_conn, die de WebSocket-handshake uitvoert op een achtergrond-socketcallback. GeefNonedoor om de server in voorgrondmodus uit te voeren (gelijkwaardig aanstart_foreground).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Handige wrapper rond
startdie de accept-lus synchroon op de voorgrond uitvoert totdat een client verbinding maakt.
- webrepl.stop() None¶
Sluit de luistersocket en eventuele actieve clientverbinding, en koppel de WebREPL los van de gedupliceerde terminal via
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Accepteer een wachtende TCP-verbinding op listen_sock en voltooi de WebSocket-handshake. Als er al een client is verbonden, wordt de nieuwe verbinding geweigerd en wordt
Falsegeretourneerd. Bij een geslaagde upgrade wordt de resulterende WebSocket omhuld met_webrepl._webreplen gekoppeld als de gedupliceerde terminal.Dit wordt voornamelijk beschikbaar gesteld zodat aanroepers het als het accept_handler-argument aan
startkunnen meegeven.
- webrepl.server_handshake(cl) bool¶
Lees het HTTP-verzoek op de zojuist geaccepteerde socket cl en antwoord met de juiste
Sec-WebSocket-Accept-headers. RetourneertTrueals de client een geldige WebSocket-upgrade heeft aangevraagd, andersFalse(in welk geval de aanroeper doorgaans terugvalt op het serveren van de HTML-client viasend_html).
- webrepl.send_html(cl) None¶
Antwoord op het HTTP-verzoek op cl met een minimaal HTML-document dat de WebREPL JavaScript-client laadt vanaf
static_hosten sluit vervolgens de socket.
Constanten¶
- webrepl.DEBUG: int¶
Stel in op een niet-nulwaarde om uitgebreide tracering van HTTP-verzoeken en WebSocket-handshakes op
sys.stdoutin te schakelen. Standaard0.
- webrepl.static_host: str¶
Basis-URL van de statische WebREPL-client die door
send_htmlwordt gebruikt. Standaard"https://micropython.org/webrepl/". Kan worden overschreven doorBASEin te stellen inwebrepl_cfg.pyof door het moduleattribuut rechtstreeks opnieuw toe te wijzen.
- webrepl.listen_s¶
De momenteel actieve luistersocket, of
Noneals de server is gestopt. Ingesteld doorstarten gewist doorstop.
- webrepl.client_s¶
De momenteel verbonden clientsocket, of
Noneals er geen client is gekoppeld. Ingesteld dooraccept_connen gewist doorstop.