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 uit webrepl_cfg.py (gemaakt door webrepl_setup). Wanneer webrepl_cfg niet 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. Geef None door om de server in voorgrondmodus uit te voeren (gelijkwaardig aan start_foreground).

webrepl.start_foreground(port: int = 8266, password: str | None = None) None

Handige wrapper rond start die 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 False geretourneerd. Bij een geslaagde upgrade wordt de resulterende WebSocket omhuld met _webrepl._webrepl en gekoppeld als de gedupliceerde terminal.

Dit wordt voornamelijk beschikbaar gesteld zodat aanroepers het als het accept_handler-argument aan start kunnen 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. Retourneert True als de client een geldige WebSocket-upgrade heeft aangevraagd, anders False (in welk geval de aanroeper doorgaans terugvalt op het serveren van de HTML-client via send_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_host en 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.stdout in te schakelen. Standaard 0.

webrepl.static_host: str

Basis-URL van de statische WebREPL-client die door send_html wordt gebruikt. Standaard "https://micropython.org/webrepl/". Kan worden overschreven door BASE in te stellen in webrepl_cfg.py of door het moduleattribuut rechtstreeks opnieuw toe te wijzen.

webrepl.listen_s

De momenteel actieve luistersocket, of None als de server is gestopt. Ingesteld door start en gewist door stop.

webrepl.client_s

De momenteel verbonden clientsocket, of None als er geen client is gekoppeld. Ingesteld door accept_conn en gewist door stop.