webrepl — WebREPL sunucusu¶
Bu modül MicroPython WebREPL’i açığa çıkarır: istemcilerin bir kartın etkileşimli istemine bağlanmasına (ve dosya aktarmasına) bir ağ bağlantısı üzerinden olanak tanıyan, WebSocket tabanlı bir REPL. micropython.org/webrepl adresinde barındırılan küçük bir statik sayfa JavaScript istemcisi olarak işlev görür.
WebREPL varsayılan olarak TCP portu 8266’da dinler ve REPL’i WebSocket akışına kopyalamak için os.dupterm kullanır. Yalnızca tek bir eşzamanlı istemci desteklenir; sonraki bağlantı girişimleri reddedilir.
Örnek:
import webrepl
webrepl.start(password="changeme")
# ... or load the password from webrepl_cfg.py:
# webrepl.start()
İşlevler¶
- webrepl.start(port: int = 8266, password: str | None = None, accept_handler=accept_conn) None¶
WebREPL dinleyicisini başlatır.
password
Noneise, parolawebrepl_cfg.py‘den (webrepl_setuptarafından oluşturulur) yüklenir.webrepl_cfgiçe aktarılamadığında bir uyarı yazdırılır ve sunucu başlatılmaz.port, dinlenecek TCP portunu seçer.
accept_handler, yeni bir TCP istemcisi bağlandığında çağrılan çağrılabilir nesnedir. Varsayılan, WebSocket el sıkışmasını bir arka plan soket geri çağırmasında (callback) gerçekleştiren
accept_conn‘dur. Sunucuyu ön plan modunda çalıştırmak içinNonegeçirin (start_foregroundile eşdeğer).
- webrepl.start_foreground(port: int = 8266, password: str | None = None) None¶
Bir istemci bağlanana kadar kabul döngüsünü ön planda eşzamanlı olarak çalıştıran,
startetrafında kullanışlı bir sarmalayıcı.
- webrepl.stop() None¶
Dinleyen soketi ve etkin tüm istemci bağlantılarını kapatır ve WebREPL’i
os.dupterm(None)aracılığıyla kopyalanan terminalden ayırır.
- webrepl.accept_conn(listen_sock) bool¶
listen_sock üzerinde bekleyen bir TCP bağlantısını kabul eder ve WebSocket el sıkışmasını tamamlar. Bir istemci zaten bağlıysa yeni bağlantı reddedilir ve
Falsedöndürülür. Başarılı bir yükseltmede, elde edilen WebSocket_webrepl._webreplile sarmalanır ve kopyalanan terminal olarak eklenir.Bu, öncelikle çağıranların onu
start‘a accept_handler bağımsız değişkeni olarak verebilmesi için açığa çıkarılmıştır.
- webrepl.server_handshake(cl) bool¶
Yeni kabul edilen soket cl üzerindeki HTTP isteğini okur ve uygun
Sec-WebSocket-Acceptbaşlıklarıyla yanıt verir. İstemci geçerli bir WebSocket yükseltmesi istediyseTrue, aksi takdirdeFalsedöndürür (bu durumda çağıran genelliklesend_htmlaracılığıyla HTML istemcisini sunmaya geri döner).
- webrepl.send_html(cl) None¶
cl üzerindeki HTTP isteğine, WebREPL JavaScript istemcisini
static_host‘tan yükleyen minimal bir HTML belgesiyle yanıt verir ve ardından soketi kapatır.
Sabitler¶
- webrepl.DEBUG: int¶
sys.stdoutüzerinde HTTP isteklerinin ve WebSocket el sıkışmalarının ayrıntılı izlemesini etkinleştirmek için sıfır olmayan bir değere ayarlayın. Varsayılan değer0‘dır.
- webrepl.static_host: str¶
send_htmltarafından kullanılan WebREPL statik istemcisinin temel URL’si. Varsayılan değer"https://micropython.org/webrepl/"‘dir.webrepl_cfg.pyiçindeBASEayarlanarak ya da modül özniteliği doğrudan yeniden atanarak geçersiz kılınabilir.
- webrepl.listen_s¶
Şu anda etkin olan dinleme soketi ya da sunucu durdurulmuşsa
None.starttarafından ayarlanır vestoptarafından temizlenir.
- webrepl.client_s¶
Şu anda bağlı olan istemci soketi ya da hiçbir istemci ekli değilse
None.accept_conntarafından ayarlanır vestoptarafından temizlenir.