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 zwebrepl_cfg.py(utworzonego przezwebrepl_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żnymstart_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._webrepli 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. ZwracaTrue, jeśli klient zażądał prawidłowego uaktualnienia do WebSocket,Falsew 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 to0.
- 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 ustawienieBASEwwebrepl_cfg.pylub 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 przezstarti czyszczone przezstop.
- webrepl.client_s¶
Aktualnie połączone gniazdo klienta lub
None, jeśli nie jest dołączony żaden klient. Ustawiane przezaccept_conni czyszczone przezstop.