webrepl — servidor WebREPL¶
Este módulo expõe o WebREPL do MicroPython: um REPL baseado em WebSocket que permite aos clientes ligar-se ao prompt interativo de uma placa (e transferir ficheiros) através de uma ligação de rede. Uma pequena página estática alojada em micropython.org/webrepl funciona como cliente JavaScript.
O WebREPL escuta na porta TCP 8266 por padrão e usa os.dupterm para duplicar o REPL no fluxo WebSocket. Apenas um cliente simultâneo é suportado; as tentativas de ligação adicionais são rejeitadas.
Exemplo:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Funções¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Inicia o ouvinte WebREPL.
Se password for
None, a palavra-passe é carregada a partir dewebrepl_cfg.py(criado porwebrepl_setup). Quandowebrepl_cfgnão pode ser importado, é impressa uma advertência e o servidor não é iniciado.port seleciona a porta TCP em que escutar.
accept_handler é o chamável invocado quando um novo cliente TCP se liga. O padrão é
accept_conn, que executa o handshake WebSocket numa callback de socket em segundo plano. PasseNonepara executar o servidor em modo de primeiro plano (equivalente astart_foreground).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Invólucro de conveniência em torno de
startque executa o ciclo de aceitação de forma síncrona em primeiro plano até que um cliente se ligue.
- webrepl.stop() None¶
Fecha o socket de escuta e qualquer ligação de cliente ativa, e desliga o WebREPL do terminal duplicado através de
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Aceita uma ligação TCP pendente em listen_sock e conclui o handshake WebSocket. Se um cliente já estiver ligado, a nova ligação é rejeitada e
Falseé devolvido. Após uma atualização bem-sucedida, o WebSocket resultante é envolvido com_webrepl._webreple anexado como terminal duplicado.Isto é exposto principalmente para que os chamadores possam fornecê-lo como argumento accept_handler para
start.
- webrepl.server_handshake(cl) bool¶
Lê o pedido HTTP no socket recentemente aceite cl e responde com os cabeçalhos
Sec-WebSocket-Acceptapropriados. DevolveTruese o cliente pediu uma atualização WebSocket válida,Falsecaso contrário (situação em que o chamador tipicamente recorre ao serviço do cliente HTML viasend_html).
- webrepl.send_html(cl) None¶
Responde ao pedido HTTP em cl com um documento HTML mínimo que carrega o cliente JavaScript WebREPL a partir de
static_hoste depois fecha o socket.
Constantes¶
- webrepl.DEBUG: int¶
Definido como um valor diferente de zero para ativar o rastreio detalhado de pedidos HTTP e handshakes WebSocket em
sys.stdout. O valor predefinido é0.
- webrepl.static_host: str¶
URL base do cliente estático WebREPL usado por
send_html. O valor predefinido é"https://micropython.org/webrepl/". Pode ser substituído definindoBASEemwebrepl_cfg.pyou reatribuindo o atributo do módulo diretamente.
- webrepl.listen_s¶
O socket de escuta atualmente ativo, ou
Nonese o servidor estiver parado. Definido porstarte limpo porstop.
- webrepl.client_s¶
O socket do cliente atualmente ligado, ou
Nonese nenhum cliente estiver anexado. Definido poraccept_conne limpo porstop.