webrepl — serwer WebREPL

Ten moduł udostępnia WebREPL MicroPython: oparty na WebSocket REPL, który pozwala klientom łączyć się z interaktywnym wierszem poleceń płytki (oraz przesyłać pliki) przez połączenie sieciowe. Mała statyczna strona hostowana pod adresem micropython.org/webrepl pełni rolę klienta JavaScript.

WebREPL nasłuchuje domyślnie na porcie TCP 8266 i używa os.dupterm do zduplikowania REPL na strumień WebSocket. Obsługiwany jest tylko jeden jednoczesny klient; kolejne próby połączenia są odrzucane.

Przykład:

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

Funkcje

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

Uruchamia nasłuchiwanie WebREPL.

Jeśli password ma wartość None, hasło jest ładowane z webrepl_cfg.py (utworzonego przez webrepl_setup). Gdy nie można zaimportować webrepl_cfg, wyświetlane jest ostrzeżenie, a serwer nie jest uruchamiany.

port wybiera port TCP, na którym należy nasłuchiwać.

accept_handler to obiekt wywoływalny uruchamiany, gdy łączy się nowy klient TCP. Wartością domyślną jest accept_conn, który wykonuje uzgadnianie WebSocket w wywołaniu zwrotnym gniazda w tle. Przekaż None, aby uruchomić serwer w trybie pierwszoplanowym (równoważnym start_foreground).

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

Wygodna nakładka na start, która synchronicznie uruchamia pętlę akceptacji na pierwszym planie, dopóki nie połączy się klient.

webrepl.stop() None

Zamyka gniazdo nasłuchujące i wszelkie aktywne połączenia klienta oraz odłącza WebREPL od zduplikowanego terminala za pomocą os.dupterm(None).

webrepl.accept_conn(listen_sock) bool

Akceptuje oczekujące połączenie TCP na listen_sock i kończy uzgadnianie WebSocket. Jeśli klient jest już połączony, nowe połączenie jest odrzucane i zwracana jest wartość False. Po pomyślnym uaktualnieniu wynikowy WebSocket jest opakowywany przez _webrepl._webrepl i dołączany jako zduplikowany terminal.

Jest to udostępniane głównie po to, aby wywołujący mogli przekazać tę funkcję jako argument accept_handler do start.

webrepl.server_handshake(cl) bool

Odczytuje żądanie HTTP na świeżo zaakceptowanym gnieździe cl i odpowiada odpowiednimi nagłówkami Sec-WebSocket-Accept. Zwraca True, jeśli klient zażądał prawidłowego uaktualnienia do WebSocket, False w przeciwnym razie (w którym to przypadku wywołujący zwykle wraca do serwowania klienta HTML za pomocą send_html).

webrepl.send_html(cl) None

Odpowiada na żądanie HTTP na cl minimalnym dokumentem HTML, który ładuje klienta JavaScript WebREPL z static_host, a następnie zamyka gniazdo.

Stałe

webrepl.DEBUG: int

Ustaw na wartość niezerową, aby włączyć szczegółowe śledzenie żądań HTTP i uzgadniania WebSocket na sys.stdout. Wartość domyślna to 0.

webrepl.static_host: str

Bazowy adres URL statycznego klienta WebREPL używanego przez send_html. Wartość domyślna to "https://micropython.org/webrepl/". Może zostać nadpisana przez ustawienie BASE w webrepl_cfg.py lub przez bezpośrednie ponowne przypisanie atrybutu modułu.

webrepl.listen_s

Aktualnie aktywne gniazdo nasłuchujące lub None, jeśli serwer jest zatrzymany. Ustawiane przez start i czyszczone przez stop.

webrepl.client_s

Aktualnie połączone gniazdo klienta lub None, jeśli nie jest dołączony żaden klient. Ustawiane przez accept_conn i czyszczone przez stop.