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ó a webrepl_cfg.py fájlból töltődik be (amelyet a webrepl_setup hoz létre). Ha a webrepl_cfg nem 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 a None értéket a szerver előtérben (foreground) történő futtatásához (ami egyenértékű a start_foreground használatával).

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

Kényelmi burkoló a start kö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._webrepl objektummal 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 start accept_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-Accept fejlécekkel válaszol. True értéket ad vissza, ha a kliens érvényes WebSocket frissítést kért, egyébként False értéket (amely esetben a hívó jellemzően visszaesik a HTML kliens kiszolgálására a send_html segí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_host cí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.stdout kimeneten. Alapértelmezett értéke 0.

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ó a BASE beállításával a webrepl_cfg.py fá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. A start állítja be, és a stop törli.

webrepl.client_s

Az aktuálisan csatlakozott kliens socket, vagy None, ha nincs csatolt kliens. Az accept_conn állítja be, és a stop törli.