webrepl — WebREPL-server

Denna modul exponerar MicroPython WebREPL: en WebSocket-baserad REPL som låter klienter ansluta till en kortsenhets interaktiva prompt (och överföra filer) över en nätverksanslutning. En liten statisk sida som finns på micropython.org/webrepl fungerar som JavaScript-klient.

WebREPL lyssnar som standard på TCP-port 8266 och använder os.dupterm för att duplicera REPL till WebSocket-strömmen. Endast en samtidig klient stöds; ytterligare anslutningsförsök avvisas.

Exempel:

import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()

Funktioner

webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None

Starta WebREPL-lyssnaren.

Om password är None läses lösenordet in från webrepl_cfg.py (som skapas av webrepl_setup). När webrepl_cfg inte kan importeras skrivs en varning ut och servern startas inte.

port väljer vilken TCP-port som ska lyssnas på.

accept_handler är det anropsbara objekt som anropas när en ny TCP-klient ansluter. Standardvärdet är accept_conn, som utför WebSocket-handskakningen i ett socket-återanrop i bakgrunden. Skicka None för att köra servern i förgrundsläge (motsvarar start_foreground).

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

Ett bekvämt omslag kring start som kör accept-slingan synkront i förgrunden tills en klient ansluter.

webrepl.stop() None

Stäng den lyssnande socketen och eventuella aktiva klientanslutningar, och koppla bort WebREPL från den duplicerade terminalen via os.dupterm(None).

webrepl.accept_conn(listen_sock) bool

Acceptera en väntande TCP-anslutning på listen_sock och slutför WebSocket-handskakningen. Om en klient redan är ansluten avvisas den nya anslutningen och False returneras. Vid en lyckad uppgradering omsluts den resulterande WebSocket med _webrepl._webrepl och kopplas in som den duplicerade terminalen.

Detta exponeras främst så att anropare kan tillhandahålla det som argumentet accept_handler till start.

webrepl.server_handshake(cl) bool

Läs HTTP-begäran på den nyligen accepterade socketen cl och svara med lämpliga Sec-WebSocket-Accept-rubriker. Returnerar True om klienten begärde en giltig WebSocket-uppgradering, False annars (i vilket fall anroparen vanligtvis faller tillbaka på att leverera HTML-klienten via send_html).

webrepl.send_html(cl) None

Svara på HTTP-begäran på cl med ett minimalt HTML-dokument som laddar WebREPL-JavaScript-klienten från static_host och stänger sedan socketen.

Konstanter

webrepl.DEBUG: int

Ställ in på ett värde skilt från noll för att aktivera utförlig spårning av HTTP-begäranden och WebSocket-handskakningar på sys.stdout. Standardvärdet är 0.

webrepl.static_host: str

Bas-URL för den statiska WebREPL-klienten som används av send_html. Standardvärdet är "https://micropython.org/webrepl/". Kan åsidosättas genom att ange BASE i webrepl_cfg.py eller genom att direkt tilldela modulattributet ett nytt värde.

webrepl.listen_s

Den för närvarande aktiva lyssnande socketen, eller None om servern är stoppad. Ställs in av start och rensas av stop.

webrepl.client_s

Den för närvarande anslutna klientsocketen, eller None om ingen klient är ansluten. Ställs in av accept_conn och rensas av stop.