webrepl — WebREPL-palvelin

Tämä moduuli altistaa MicroPythonin WebREPL:n: WebSocket-pohjaisen REPL:n, jonka avulla asiakkaat voivat yhdistää kortin interaktiiviseen kehotteeseen (ja siirtää tiedostoja) verkkoyhteyden kautta. Osoitteessa micropython.org/webrepl isännöity pieni staattinen sivu toimii JavaScript-asiakkaana.

WebREPL kuuntelee oletusarvoisesti TCP-portissa 8266 ja käyttää os.dupterm:ia REPL:n monistamiseen WebSocket-virtaan. Vain yhtä samanaikaista asiakasta tuetaan; muut yhteysyritykset hylätään.

Esimerkki:

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

Funktiot

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

Käynnistää WebREPL-kuuntelijan.

Jos password on None, salasana ladataan tiedostosta webrepl_cfg.py (jonka webrepl_setup luo). Kun webrepl_cfg:tä ei voida tuoda, tulostetaan varoitus eikä palvelinta käynnistetä.

port valitsee kuunneltavan TCP-portin.

accept_handler on kutsuttava, joka suoritetaan, kun uusi TCP-asiakas yhdistää. Oletus on accept_conn, joka suorittaa WebSocket-kättelyn taustasoketin takaisinkutsussa. Anna None suorittaaksesi palvelimen etualatilassa (vastaa start_foreground:ia).

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

Käytännöllinen kääre start:n ympärillä, joka suorittaa hyväksyntäsilmukan synkronisesti etualalla, kunnes asiakas yhdistää.

webrepl.stop() None

Sulkee kuuntelevan soketin ja kaikki aktiiviset asiakasyhteydet sekä irrottaa WebREPL:n monistetusta terminaalista kutsulla os.dupterm(None).

webrepl.accept_conn(listen_sock) bool

Hyväksyy odottavan TCP-yhteyden sokettiin listen_sock ja viimeistelee WebSocket-kättelyn. Jos asiakas on jo yhdistetty, uusi yhteys hylätään ja palautetaan False. Onnistuneen päivityksen yhteydessä tuloksena oleva WebSocket kääritään _webrepl._webrepl:llä ja liitetään monistetuksi terminaaliksi.

Tämä on altistettu ensisijaisesti siksi, että kutsujat voivat antaa sen accept_handler-argumenttina funktiolle start.

webrepl.server_handshake(cl) bool

Lukee HTTP-pyynnön juuri hyväksytystä soketista cl ja vastaa asianmukaisilla Sec-WebSocket-Accept-otsikoilla. Palauttaa True, jos asiakas pyysi kelvollista WebSocket-päivitystä, muutoin False (jolloin kutsuja tyypillisesti turvautuu HTML-asiakkaan tarjoamiseen funktiolla send_html).

webrepl.send_html(cl) None

Vastaa soketin cl HTTP-pyyntöön minimaalisella HTML-dokumentilla, joka lataa WebREPL JavaScript -asiakkaan lähteestä static_host ja sulkee sitten soketin.

Vakiot

webrepl.DEBUG: int

Aseta nollasta poikkeavaksi arvoksi ottaaksesi käyttöön HTTP-pyyntöjen ja WebSocket-kättelyiden yksityiskohtaisen jäljityksen kohteeseen sys.stdout. Oletusarvo on 0.

webrepl.static_host: str

WebREPL:n staattisen asiakkaan perus-URL, jota send_html käyttää. Oletusarvo on "https://micropython.org/webrepl/". Voidaan ohittaa asettamalla BASE tiedostossa webrepl_cfg.py tai määrittämällä moduulin attribuutti suoraan uudelleen.

webrepl.listen_s

Tällä hetkellä aktiivinen kuunteleva soketti tai None, jos palvelin on pysäytetty. Asetetaan funktiolla start ja tyhjennetään funktiolla stop.

webrepl.client_s

Tällä hetkellä yhdistetty asiakassoketti tai None, jos yhtään asiakasta ei ole liitetty. Asetetaan funktiolla accept_conn ja tyhjennetään funktiolla stop.