webrepl — WebREPL szerver¶
Ez a modul teszi elérhetővé a MicroPython WebREPL-t: egy WebSocket-alapú REPL-t, amely lehetővé teszi a kliensek számára, hogy hálózati kapcsolaton keresztül csatlakozzanak egy kártya interaktív parancssorához (és fájlokat is átvigyenek). A micropython.org/webrepl címen üzemeltetett kis statikus oldal szolgál JavaScript kliensként.
A WebREPL alapértelmezetten a 8266-os TCP porton figyel, és az os.dupterm segítségével duplikálja a REPL-t a WebSocket adatfolyamra. Csak egyetlen egyidejű kliens támogatott; a további csatlakozási kísérletek elutasításra kerülnek.
Példa:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Függvények¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Elindítja a WebREPL figyelőt.
Ha a password értéke
None, a jelszó awebrepl_cfg.pyfájlból töltődik be (amelyet awebrepl_setuphoz létre). Ha awebrepl_cfgnem importálható, egy figyelmeztetés jelenik meg, és a szerver nem indul el.A port választja ki azt a TCP portot, amelyen figyelni kell.
Az accept_handler az a meghívható objektum, amely akkor hívódik meg, amikor egy új TCP kliens csatlakozik. Az alapértelmezett az
accept_conn, amely egy háttér-socket visszahívásban hajtja végre a WebSocket kézfogást. Adja át aNoneértéket a szerver előtérben (foreground) történő futtatásához (ami egyenértékű astart_foregroundhasználatával).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Kényelmi burkoló a
startköré, amely az elfogadási ciklust szinkron módon, előtérben futtatja, amíg egy kliens nem csatlakozik.
- webrepl.stop() None¶
Lezárja a figyelő socketet és minden aktív klienskapcsolatot, valamint leválasztja a WebREPL-t a duplikált terminálról az
os.dupterm(None)hívással.
- webrepl.accept_conn(listen_sock) bool¶
Elfogad egy függőben lévő TCP kapcsolatot a listen_sock socketen, és befejezi a WebSocket kézfogást. Ha már csatlakozott egy kliens, az új kapcsolat elutasításra kerül, és
Falseérték adódik vissza. Sikeres frissítés (upgrade) esetén a kapott WebSocket a_webrepl._webreplobjektummal kerül becsomagolásra, és duplikált terminálként csatolódik.Ez elsősorban azért érhető el, hogy a hívók a
startaccept_handler argumentumaként adhassák meg.
- webrepl.server_handshake(cl) bool¶
Beolvassa a HTTP kérést a frissen elfogadott cl socketen, és a megfelelő
Sec-WebSocket-Acceptfejlécekkel válaszol.Trueértéket ad vissza, ha a kliens érvényes WebSocket frissítést kért, egyébkéntFalseértéket (amely esetben a hívó jellemzően visszaesik a HTML kliens kiszolgálására asend_htmlsegítségével).
- webrepl.send_html(cl) None¶
Válaszol a cl socketen érkező HTTP kérésre egy minimális HTML dokumentummal, amely betölti a WebREPL JavaScript klienst a
static_hostcímről, majd lezárja a socketet.
Konstansok¶
- webrepl.DEBUG: int¶
Állítsa nullától eltérő értékre a HTTP kérések és WebSocket kézfogások részletes nyomon követésének (verbose tracing) engedélyezéséhez a
sys.stdoutkimeneten. Alapértelmezett értéke0.
- webrepl.static_host: str¶
A
send_htmláltal használt WebREPL statikus kliens alap-URL-je. Alapértelmezett értéke"https://micropython.org/webrepl/". Felülírható aBASEbeállításával awebrepl_cfg.pyfájlban, vagy a modul attribútumának közvetlen újra-hozzárendelésével.
- webrepl.listen_s¶
Az aktuálisan aktív figyelő socket, vagy
None, ha a szerver le van állítva. Astartállítja be, és astoptörli.
- webrepl.client_s¶
Az aktuálisan csatlakozott kliens socket, vagy
None, ha nincs csatolt kliens. Azaccept_connállítja be, és astoptörli.