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 passwordNone, mật khẩu được nạp từ webrepl_cfg.py (tạo bởi webrepl_setup). Khi webrepl_cfg khô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ền None để chạy server ở chế độ foreground (tương đương với start_foreground).

webrepl.start_foreground(port: int = 8266, password: str | None = None) None

Wrapper tiện lợi quanh start chạ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._webrepl và đí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-Accept phù hợp. Trả về True nếu client yêu cầu nâng cấp WebSocket hợp lệ, False nế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 qua send_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_host và 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 đặt BASE trong webrepl_cfg.py hoặ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 None nếu server bị dừng. Được thiết lập bởi start và xóa bởi stop.

webrepl.client_s

Socket client hiện đang kết nối, hoặc None nếu không có client nào được đính kèm. Được thiết lập bởi accept_conn và xóa bởi stop.