webrepl — servidor WebREPL¶
Este módulo expõe o WebREPL do MicroPython: um REPL baseado em WebSocket que permite a clientes se conectarem ao prompt interativo de uma placa (e transferirem arquivos) por meio de uma conexão de rede. Uma pequena página estática hospedada em micropython.org/webrepl atua como o cliente JavaScript.
O WebREPL escuta por padrão na porta TCP 8266 e usa os.dupterm para duplicar o REPL no fluxo do WebSocket. Apenas um cliente simultâneo é suportado; tentativas adicionais de conexão 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 listener do WebREPL.
Se password for
None, a senha é carregada dewebrepl_cfg.py(criado pelowebrepl_setup). Quandowebrepl_cfgnão pode ser importado, um aviso é exibido e o servidor não é iniciado.port seleciona a porta TCP na qual escutar.
accept_handler é o objeto chamável invocado quando um novo cliente TCP se conecta. O padrão é
accept_conn, que realiza o handshake do WebSocket em um 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¶
Wrapper de conveniência em torno de
startque executa o loop de aceitação de forma síncrona em primeiro plano até que um cliente se conecte.
- webrepl.stop() None¶
Fecha o socket de escuta e qualquer conexão de cliente ativa, e desanexa o WebREPL do terminal duplicado via
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Aceita uma conexão TCP pendente em listen_sock e completa o handshake do WebSocket. Se um cliente já estiver conectado, a nova conexão é rejeitada e
Falseé retornado. Em um upgrade bem-sucedido, o WebSocket resultante é encapsulado com_webrepl._webreple anexado como o terminal duplicado.Isso é exposto principalmente para que os chamadores possam fornecê-lo como o argumento accept_handler de
start.
- webrepl.server_handshake(cl) bool¶
Lê a requisição HTTP no socket recém-aceito cl e responde com os cabeçalhos
Sec-WebSocket-Acceptapropriados. RetornaTruese o cliente solicitou um upgrade WebSocket válido,Falsecaso contrário (caso em que o chamador tipicamente recorre a servir o cliente HTML viasend_html).
- webrepl.send_html(cl) None¶
Responde à requisição HTTP em cl com um documento HTML mínimo que carrega o cliente JavaScript do WebREPL a partir de
static_hoste então fecha o socket.
Constantes¶
- webrepl.DEBUG: int¶
Defina como um valor diferente de zero para habilitar o rastreamento detalhado de requisições HTTP e handshakes de WebSocket em
sys.stdout. O padrão é0.
- webrepl.static_host: str¶
URL base do cliente estático do WebREPL usado por
send_html. O padrão é"https://micropython.org/webrepl/". Pode ser sobrescrito definindoBASEemwebrepl_cfg.pyou reatribuindo diretamente o atributo do módulo.
- webrepl.listen_s¶
O socket de escuta atualmente ativo, ou
Nonese o servidor estiver parado. Definido porstarte limpo porstop.
- webrepl.client_s¶
O socket de cliente atualmente conectado, ou
Nonese nenhum cliente estiver anexado. Definido poraccept_conne limpo porstop.