webrepl --- server WebREPL

Modul ini mengekspos WebREPL MicroPython: sebuah REPL berbasis WebSocket yang memungkinkan klien terhubung ke prompt interaktif papan (dan mentransfer berkas) melalui koneksi jaringan. Halaman statis kecil yang dihosting di micropython.org/webrepl berfungsi sebagai klien JavaScript.

WebREPL mendengarkan pada port TCP 8266 secara default dan menggunakan os.dupterm untuk menduplikasi REPL ke aliran WebSocket. Hanya satu klien bersamaan yang didukung; upaya koneksi lebih lanjut akan ditolak.

Contoh:

import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()

Fungsi

webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None

Mulai listener WebREPL.

Jika password adalah None, kata sandi dimuat dari webrepl_cfg.py (dibuat oleh webrepl_setup). Ketika webrepl_cfg tidak dapat diimpor, sebuah peringatan dicetak dan server tidak dimulai.

port menentukan port TCP untuk didengarkan.

accept_handler adalah callable yang dipanggil ketika klien TCP baru terhubung. Default-nya adalah accept_conn, yang melakukan handshake WebSocket pada callback soket latar belakang. Berikan None untuk menjalankan server dalam mode foreground (setara dengan start_foreground).

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

Pembungkus praktis di sekitar start yang menjalankan loop penerimaan secara sinkron di foreground hingga klien terhubung.

webrepl.stop() None

Tutup soket listening dan koneksi klien aktif mana pun, dan lepaskan WebREPL dari terminal yang diduplikasi melalui os.dupterm(None).

webrepl.accept_conn(listen_sock) bool

Terima koneksi TCP yang tertunda pada listen_sock dan selesaikan handshake WebSocket. Jika klien sudah terhubung, koneksi baru ditolak dan False dikembalikan. Pada peningkatan yang berhasil, WebSocket yang dihasilkan dibungkus dengan _webrepl._webrepl dan dilampirkan sebagai terminal yang diduplikasi.

Ini diekspos terutama agar pemanggil dapat menyediakannya sebagai argumen accept_handler ke start.

webrepl.server_handshake(cl) bool

Baca permintaan HTTP pada soket cl yang baru diterima dan balas dengan header Sec-WebSocket-Accept yang sesuai. Mengembalikan True jika klien meminta peningkatan WebSocket yang valid, False sebaliknya (dalam hal ini pemanggil biasanya kembali ke penyajian klien HTML melalui send_html).

webrepl.send_html(cl) None

Balas permintaan HTTP pada cl dengan dokumen HTML minimal yang memuat klien JavaScript WebREPL dari static_host dan kemudian menutup soket.

Konstanta

webrepl.DEBUG: int

Diatur ke nilai bukan-nol untuk mengaktifkan pelacakan verbose dari permintaan HTTP dan handshake WebSocket di sys.stdout. Default-nya adalah 0.

webrepl.static_host: str

URL dasar klien statis WebREPL yang digunakan oleh send_html. Default-nya adalah "https://micropython.org/webrepl/". Dapat dikesampingkan dengan mengatur BASE di webrepl_cfg.py atau dengan menetapkan ulang atribut modul secara langsung.

webrepl.listen_s

Soket listening yang sedang aktif, atau None jika server dihentikan. Diatur oleh start dan dihapus oleh stop.

webrepl.client_s

Soket klien yang sedang terhubung, atau None jika tidak ada klien yang terpasang. Diatur oleh accept_conn dan dihapus oleh stop.