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.