webrepl — WebREPL server

Tento modul zpřístupňuje MicroPython WebREPL: REPL založený na WebSocket, který umožňuje klientům připojit se k interaktivní výzvě desky (a přenášet soubory) přes síťové připojení. Malá statická stránka hostovaná na micropython.org/webrepl funguje jako JavaScript klient.

WebREPL ve výchozím nastavení naslouchá na TCP portu 8266 a používá os.dupterm k duplikování REPL na WebSocket stream. Podporován je pouze jeden současný klient; další pokusy o připojení jsou odmítnuty.

Příklad:

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

Funkce

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

Spustí WebREPL listener.

Pokud je password None, heslo se načte z webrepl_cfg.py (vytvořeného pomocí webrepl_setup). Když nelze webrepl_cfg naimportovat, vypíše se varování a server se nespustí.

port vybírá TCP port, na kterém se má naslouchat.

accept_handler je volatelný objekt vyvolaný, když se připojí nový TCP klient. Výchozí je accept_conn, který provádí WebSocket handshake v rámci callbacku socketu na pozadí. Předáním None poběží server v popředí (ekvivalent start_foreground).

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

Praktický obal kolem start, který synchronně spouští accept smyčku v popředí, dokud se nepřipojí klient.

webrepl.stop() None

Zavře naslouchací socket i jakékoli aktivní klientské připojení a odpojí WebREPL od duplikovaného terminálu pomocí os.dupterm(None).

webrepl.accept_conn(listen_sock) bool

Přijme čekající TCP připojení na listen_sock a dokončí WebSocket handshake. Pokud je již připojen klient, nové připojení je odmítnuto a vrátí se False. Při úspěšném upgradu je výsledný WebSocket zabalen pomocí _webrepl._webrepl a připojen jako duplikovaný terminál.

Toto je zpřístupněno primárně proto, aby jej volající mohli předat jako argument accept_handler funkci start.

webrepl.server_handshake(cl) bool

Načte HTTP požadavek na čerstvě přijatém socketu cl a odpoví příslušnými hlavičkami Sec-WebSocket-Accept. Vrátí True, pokud klient požádal o platný WebSocket upgrade, jinak False (v kterémžto případě se volající obvykle vrátí k poskytnutí HTML klienta přes send_html).

webrepl.send_html(cl) None

Odpoví na HTTP požadavek na cl minimálním HTML dokumentem, který načte WebREPL JavaScript klienta z static_host, a poté socket zavře.

Konstanty

webrepl.DEBUG: int

Nastavte na nenulovou hodnotu pro zapnutí podrobného trasování HTTP požadavků a WebSocket handshaků na sys.stdout. Výchozí hodnota je 0.

webrepl.static_host: str

Základní URL statického WebREPL klienta používaného funkcí send_html. Výchozí hodnota je "https://micropython.org/webrepl/". Lze ji přepsat nastavením BASE v webrepl_cfg.py nebo přímým přeřazením atributu modulu.

webrepl.listen_s

Aktuálně aktivní naslouchací socket, nebo None, pokud je server zastaven. Nastavuje jej start a maže stop.

webrepl.client_s

Aktuálně připojený klientský socket, nebo None, pokud není připojen žádný klient. Nastavuje jej accept_conn a maže stop.