webrepl — serveur WebREPL¶
Ce module expose le WebREPL de MicroPython : un REPL basé sur WebSocket qui permet aux clients de se connecter à l’invite interactive d’une carte (et de transférer des fichiers) via une connexion réseau. Une petite page statique hébergée sur micropython.org/webrepl fait office de client JavaScript.
Le WebREPL écoute par défaut sur le port TCP 8266 et utilise os.dupterm pour dupliquer le REPL sur le flux WebSocket. Un seul client simultané est pris en charge ; les tentatives de connexion supplémentaires sont rejetées.
Exemple
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Fonctions¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Démarre l’écouteur WebREPL.
Si password vaut
None, le mot de passe est chargé depuiswebrepl_cfg.py(créé parwebrepl_setup). Lorsquewebrepl_cfgne peut pas être importé, un avertissement est affiché et le serveur n’est pas démarré.port sélectionne le port TCP sur lequel écouter.
accept_handler est l’objet appelable invoqué lorsqu’un nouveau client TCP se connecte. La valeur par défaut est
accept_conn, qui effectue la négociation WebSocket dans une fonction de rappel de socket en arrière-plan. PassezNonepour exécuter le serveur en mode premier plan (équivalent àstart_foreground).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Wrapper pratique autour de
startqui exécute la boucle d’acceptation de manière synchrone au premier plan jusqu’à ce qu’un client se connecte.
- webrepl.stop() None¶
Ferme le socket d’écoute et toute connexion client active, puis détache le WebREPL du terminal dupliqué via
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Accepte une connexion TCP en attente sur listen_sock et complète la négociation WebSocket. Si un client est déjà connecté, la nouvelle connexion est rejetée et
Falseest renvoyé. En cas de mise à niveau réussie, le WebSocket résultant est enveloppé avec_webrepl._webreplet attaché en tant que terminal dupliqué.Ceci est exposé principalement pour que les appelants puissent le fournir comme argument accept_handler à
start.
- webrepl.server_handshake(cl) bool¶
Lit la requête HTTP sur le socket cl fraîchement accepté et répond avec les en-têtes
Sec-WebSocket-Acceptappropriés. RenvoieTruesi le client a demandé une mise à niveau WebSocket valide,Falsesinon (auquel cas l’appelant se rabat généralement sur la fourniture du client HTML viasend_html).
- webrepl.send_html(cl) None¶
Répond à la requête HTTP sur cl avec un document HTML minimal qui charge le client JavaScript WebREPL depuis
static_host, puis ferme le socket.
Constantes¶
- webrepl.DEBUG: int¶
Définir sur une valeur non nulle pour activer le traçage détaillé des requêtes HTTP et des négociations WebSocket sur
sys.stdout. La valeur par défaut est0.
- webrepl.static_host: str¶
URL de base du client statique WebREPL utilisé par
send_html. La valeur par défaut est"https://micropython.org/webrepl/". Peut être remplacée en définissantBASEdanswebrepl_cfg.pyou en réaffectant directement l’attribut du module.
- webrepl.listen_s¶
Le socket d’écoute actuellement actif, ou
Nonesi le serveur est arrêté. Défini parstartet effacé parstop.
- webrepl.client_s¶
Le socket client actuellement connecté, ou
Nonesi aucun client n’est attaché. Défini paraccept_connet effacé parstop.