webrepl — WebREPL poslužitelj

Ovaj modul izlaže MicroPython WebREPL: REPL temeljen na WebSocketu koji omogućuje klijentima da se povežu na interaktivni prompt ploče (te prenose datoteke) putem mrežne veze. Mala statična stranica hostana na micropython.org/webrepl djeluje kao JavaScript klijent.

WebREPL prema zadanim postavkama sluša na TCP portu 8266 i koristi os.dupterm za dupliciranje REPL-a na WebSocket tok. Podržan je samo jedan istovremeni klijent; daljnji pokušaji povezivanja se odbijaju.

Primjer:

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

Funkcije

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

Pokreće WebREPL slušatelj.

Ako je password postavljen na None, lozinka se učitava iz webrepl_cfg.py (koji stvara webrepl_setup). Kada se webrepl_cfg ne može uvesti, ispisuje se upozorenje i poslužitelj se ne pokreće.

port odabire TCP port na kojem se sluša.

accept_handler je pozivni objekt koji se poziva kada se poveže novi TCP klijent. Zadana vrijednost je accept_conn, koji izvodi WebSocket rukovanje u pozadinskom povratnom pozivu utičnice. Proslijedite None za pokretanje poslužitelja u prednjem načinu rada (ekvivalentno start_foreground).

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

Pogodni omotač oko start koji izvodi petlju prihvaćanja sinkrono u prvom planu dok se klijent ne poveže.

webrepl.stop() None

Zatvara slušajuću utičnicu i svaku aktivnu klijentsku vezu te odvaja WebREPL od dupliciranog terminala putem os.dupterm(None).

webrepl.accept_conn(listen_sock) bool

Prihvaća TCP vezu na čekanju na listen_sock i dovršava WebSocket rukovanje. Ako je klijent već povezan, nova veza se odbija i vraća se False. Pri uspješnoj nadogradnji, rezultirajući WebSocket omata se s _webrepl._webrepl i pridružuje kao duplicirani terminal.

Ovo je izloženo prvenstveno kako bi ga pozivatelji mogli proslijediti kao argument accept_handler funkciji start.

webrepl.server_handshake(cl) bool

Čita HTTP zahtjev na netom prihvaćenoj utičnici cl i odgovara odgovarajućim Sec-WebSocket-Accept zaglavljima. Vraća True ako je klijent zatražio valjanu WebSocket nadogradnju, inače False (u kojem slučaju pozivatelj obično pribjegava posluživanju HTML klijenta putem send_html).

webrepl.send_html(cl) None

Odgovara na HTTP zahtjev na cl minimalnim HTML dokumentom koji učitava WebREPL JavaScript klijent s static_host i zatim zatvara utičnicu.

Konstante

webrepl.DEBUG: int

Postavite na vrijednost različitu od nule za omogućavanje opširnog praćenja HTTP zahtjeva i WebSocket rukovanja na sys.stdout. Zadana vrijednost je 0.

webrepl.static_host: str

Osnovni URL WebREPL statičnog klijenta koji koristi send_html. Zadana vrijednost je "https://micropython.org/webrepl/". Može se nadjačati postavljanjem BASE u webrepl_cfg.py ili izravnim ponovnim dodjeljivanjem atributa modula.

webrepl.listen_s

Trenutno aktivna slušajuća utičnica, ili None ako je poslužitelj zaustavljen. Postavlja je start, a briše stop.

webrepl.client_s

Trenutno povezana klijentska utičnica, ili None ako nijedan klijent nije pridružen. Postavlja je accept_conn, a briše stop.