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.