webrepl --- máy chủ WebREPL¶
Module này cung cấp WebREPL của MicroPython: một REPL dựa trên WebSocket cho phép các client kết nối với dấu nhắc tương tác của board (và truyền tập tin) qua kết nối mạng. Một trang tĩnh nhỏ được lưu trữ tại micropython.org/webrepl đóng vai trò là client JavaScript.
WebREPL lắng nghe trên cổng TCP 8266 theo mặc định và sử dụng os.dupterm để nhân đôi REPL vào luồng WebSocket. Chỉ hỗ trợ một client đồng thời; các lần kết nối tiếp theo sẽ bị từ chối.
Ví dụ:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
Hàm¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
Khởi động listener WebREPL.
Nếu password là
None, mật khẩu được nạp từwebrepl_cfg.py(tạo bởiwebrepl_setup). Khiwebrepl_cfgkhông thể được import, một cảnh báo sẽ được in ra và server không được khởi động.port chọn cổng TCP để lắng nghe.
accept_handler là hàm gọi lại được gọi khi một client TCP mới kết nối. Mặc định là
accept_conn, thực hiện bắt tay WebSocket trên một hàm gọi lại socket nền. TruyềnNoneđể chạy server ở chế độ foreground (tương đương vớistart_foreground).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Wrapper tiện lợi quanh
startchạy vòng lặp accept đồng bộ ở foreground cho đến khi một client kết nối.
- webrepl.stop() None¶
Đóng socket đang lắng nghe và bất kỳ kết nối client đang hoạt động nào, và tách WebREPL khỏi terminal nhân đôi qua
os.dupterm(None).
- webrepl.accept_conn(listen_sock) bool¶
Chấp nhận kết nối TCP đang chờ trên listen_sock và hoàn tất bắt tay WebSocket. Nếu một client đã kết nối, kết nối mới bị từ chối và
Falseđược trả về. Khi nâng cấp thành công, WebSocket kết quả được bọc với_webrepl._webreplvà đính kèm như là terminal nhân đôi.Hàm này được cung cấp chủ yếu để người gọi có thể truyền nó làm đối số accept_handler cho
start.
- webrepl.server_handshake(cl) bool¶
Đọc yêu cầu HTTP trên socket cl vừa được chấp nhận và trả lời với các header
Sec-WebSocket-Acceptphù hợp. Trả vềTruenếu client yêu cầu nâng cấp WebSocket hợp lệ,Falsenếu không (trong trường hợp đó người gọi thường dự phòng bằng cách phục vụ HTML client quasend_html).
- webrepl.send_html(cl) None¶
Trả lời yêu cầu HTTP trên cl bằng một tài liệu HTML tối giản tải client JavaScript WebREPL từ
static_hostvà sau đó đóng socket.
Hằng số¶
- webrepl.DEBUG: int¶
Đặt thành giá trị khác không để kích hoạt tracing chi tiết các yêu cầu HTTP và bắt tay WebSocket trên
sys.stdout. Mặc định là0.
- webrepl.static_host: str¶
URL cơ sở của static client WebREPL được sử dụng bởi
send_html. Mặc định là"https://micropython.org/webrepl/". Có thể ghi đè bằng cách đặtBASEtrongwebrepl_cfg.pyhoặc bằng cách gán lại thuộc tính module trực tiếp.
- webrepl.listen_s¶
Socket đang lắng nghe hiện tại, hoặc
Nonenếu server bị dừng. Được thiết lập bởistartvà xóa bởistop.
- webrepl.client_s¶
Socket client hiện đang kết nối, hoặc
Nonenếu không có client nào được đính kèm. Được thiết lập bởiaccept_connvà xóa bởistop.