webrepl — server WebREPL¶
Acest modul expune WebREPL-ul MicroPython: un REPL bazat pe WebSocket care permite clienților să se conecteze la promptul interactiv al unei plăci (și să transfere fișiere) printr-o conexiune de rețea. O mică pagină statică găzduită la micropython.org/webrepl acționează ca client JavaScript.
WebREPL ascultă în mod implicit pe portul TCP 8266 și utilizează os.dupterm pentru a duplica REPL-ul pe fluxul WebSocket. Este acceptat un singur client simultan; încercările suplimentare de conectare sunt respinse.
Exemplu:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Funcții¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Pornește componenta de ascultare WebREPL.
Dacă password este
None, parola este încărcată dinwebrepl_cfg.py(creat dewebrepl_setup). Atunci cândwebrepl_cfgnu poate fi importat, se afișează un avertisment, iar serverul nu este pornit.port selectează portul TCP pe care se ascultă.
accept_handler este obiectul apelabil invocat atunci când se conectează un nou client TCP. Valoarea implicită este
accept_conn, care efectuează negocierea WebSocket într-o funcție de retroapelare (callback) a unui socket de fundal. TransmitețiNonepentru a rula serverul în mod prim-plan (echivalent custart_foreground).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Înveliș de conveniență în jurul
start, care rulează bucla de acceptare sincron, în prim-plan, până când se conectează un client.
- webrepl.stop() None¶
Închide socketul de ascultare și orice conexiune de client activă și detașează WebREPL de terminalul duplicat prin
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Acceptă o conexiune TCP în așteptare pe listen_sock și finalizează negocierea WebSocket. Dacă un client este deja conectat, noua conexiune este respinsă și se returnează
False. La o trecere reușită la WebSocket, socketul WebSocket rezultat este învelit cu_webrepl._webreplși atașat ca terminal duplicat.Acesta este expus în principal pentru ca apelanții să îl poată furniza ca argument accept_handler către
start.
- webrepl.server_handshake(cl) bool¶
Citește cererea HTTP de pe socketul cl tocmai acceptat și răspunde cu anteturile
Sec-WebSocket-Acceptcorespunzătoare. ReturneazăTruedacă clientul a solicitat o trecere validă la WebSocket,Falseîn caz contrar (caz în care apelantul recurge de obicei la servirea clientului HTML prinsend_html).
- webrepl.send_html(cl) None¶
Răspunde la cererea HTTP de pe cl cu un document HTML minimal care încarcă clientul JavaScript WebREPL de la
static_hostși apoi închide socketul.
Constante¶
- webrepl.DEBUG: int¶
Setați la o valoare diferită de zero pentru a activa urmărirea detaliată a cererilor HTTP și a negocierilor WebSocket pe
sys.stdout. Valoarea implicită este0.
- webrepl.static_host: str¶
URL-ul de bază al clientului static WebREPL utilizat de
send_html. Valoarea implicită este"https://micropython.org/webrepl/". Poate fi suprascris prin setareaBASEînwebrepl_cfg.pysau prin reatribuirea directă a atributului modulului.
- webrepl.listen_s¶
Socketul de ascultare activ în prezent sau
Nonedacă serverul este oprit. Setat destartși șters destop.
- webrepl.client_s¶
Socketul clientului conectat în prezent sau
Nonedacă niciun client nu este atașat. Setat deaccept_connși șters destop.