webrepl — servidor WebREPL¶
Este módulo expone el WebREPL de MicroPython: un REPL basado en WebSocket que permite a los clientes conectarse al prompt interactivo de una placa (y transferir archivos) a través de una conexión de red. Una pequeña página estática alojada en micropython.org/webrepl actúa como cliente JavaScript.
El WebREPL escucha por defecto en el puerto TCP 8266 y utiliza os.dupterm para duplicar el REPL en el flujo WebSocket. Solo se admite un cliente simultáneo; los demás intentos de conexión se rechazan.
Ejemplo:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Funciones¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Inicia el escuchador del WebREPL.
Si password es
None, la contraseña se carga desdewebrepl_cfg.py(creado porwebrepl_setup). Cuandowebrepl_cfgno se puede importar, se imprime una advertencia y el servidor no se inicia.port selecciona el puerto TCP en el que escuchar.
accept_handler es el invocable que se llama cuando se conecta un nuevo cliente TCP. El valor predeterminado es
accept_conn, que realiza el handshake de WebSocket en una función de retorno (callback) de socket en segundo plano. PasaNonepara ejecutar el servidor en modo de primer plano (equivalente astart_foreground).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Envoltorio de conveniencia alrededor de
startque ejecuta el bucle de aceptación de forma síncrona en primer plano hasta que se conecta un cliente.
- webrepl.stop() None¶
Cierra el socket de escucha y cualquier conexión de cliente activa, y desvincula el WebREPL del terminal duplicado mediante
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Acepta una conexión TCP pendiente en listen_sock y completa el handshake de WebSocket. Si ya hay un cliente conectado, la nueva conexión se rechaza y se devuelve
False. Si la actualización tiene éxito, el WebSocket resultante se envuelve con_webrepl._webreply se vincula como terminal duplicado.Esto se expone principalmente para que quienes llaman puedan proporcionarlo como argumento accept_handler de
start.
- webrepl.server_handshake(cl) bool¶
Lee la solicitud HTTP en el socket recién aceptado cl y responde con las cabeceras
Sec-WebSocket-Acceptapropiadas. DevuelveTruesi el cliente solicitó una actualización a WebSocket válida, yFalseen caso contrario (en cuyo caso quien hace la llamada normalmente recurre a servir el cliente HTML mediantesend_html).
- webrepl.send_html(cl) None¶
Responde a la solicitud HTTP en cl con un documento HTML mínimo que carga el cliente JavaScript del WebREPL desde
static_hosty luego cierra el socket.
Constantes¶
- webrepl.DEBUG: int¶
Asígnale un valor distinto de cero para habilitar el rastreo detallado de las solicitudes HTTP y los handshakes de WebSocket en
sys.stdout. El valor predeterminado es0.
- webrepl.static_host: str¶
URL base del cliente estático del WebREPL utilizado por
send_html. El valor predeterminado es"https://micropython.org/webrepl/". Puede sobrescribirse asignandoBASEenwebrepl_cfg.pyo reasignando directamente el atributo del módulo.
- webrepl.listen_s¶
El socket de escucha actualmente activo, o
Nonesi el servidor está detenido. Lo asignastarty lo borrastop.
- webrepl.client_s¶
El socket de cliente actualmente conectado, o
Nonesi no hay ningún cliente vinculado. Lo asignaaccept_conny lo borrastop.