webrepl — שרת WebREPL

מודול זה חושף את ה-WebREPL של MicroPython: REPL מבוסס WebSocket המאפשר ללקוחות להתחבר לשורת הפקודה האינטראקטיבית של לוח (ולהעביר קבצים) דרך חיבור רשת. דף סטטי קטן המאוחסן בכתובת micropython.org/webrepl משמש כלקוח ה-JavaScript.

ה-WebREPL מאזין כברירת מחדל לפורט TCP 8266 ומשתמש ב-os.dupterm כדי לשכפל את ה-REPL אל זרם ה-WebSocket. נתמך לקוח אחד בלבד בו-זמנית; ניסיונות חיבור נוספים נדחים.

דוגמה:

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

פונקציות

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

הפעלת מאזין ה-WebREPL.

אם password הוא None, הסיסמה נטענת מ-webrepl_cfg.py (שנוצר על ידי webrepl_setup). כאשר לא ניתן לייבא את webrepl_cfg מודפסת אזהרה והשרת אינו מופעל.

port בוחר את פורט ה-TCP שאליו יש להאזין.

accept_handler הוא ה-callable המופעל כאשר לקוח TCP חדש מתחבר. ברירת המחדל היא accept_conn, המבצע את לחיצת היד של ה-WebSocket ב-callback של סוקט ברקע. העבירו None כדי להריץ את השרת במצב חזית (שווה ערך ל-start_foreground).

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

עוטף נוחות סביב start המריץ את לולאת הקבלה באופן סינכרוני בחזית עד שלקוח מתחבר.

webrepl.stop() None

סגירת סוקט ההאזנה וכל חיבור לקוח פעיל, וניתוק ה-WebREPL מהטרמינל המשוכפל באמצעות os.dupterm(None).

webrepl.accept_conn(listen_sock) bool

קבלת חיבור TCP ממתין על listen_sock והשלמת לחיצת היד של ה-WebSocket. אם לקוח כבר מחובר, החיבור החדש נדחה ומוחזר False. בשדרוג מוצלח, ה-WebSocket שנוצר נעטף ב-_webrepl._webrepl ומחובר כטרמינל המשוכפל.

זה נחשף בעיקר כדי שקוראים יוכלו לספק אותו כארגומנט accept_handler ל-start.

webrepl.server_handshake(cl) bool

קריאת בקשת ה-HTTP על הסוקט cl שזה עתה התקבל ומענה עם כותרות ה-Sec-WebSocket-Accept המתאימות. מחזיר True אם הלקוח ביקש שדרוג WebSocket תקף, False אחרת (ובמקרה זה הקורא בדרך כלל נסוג להגשת לקוח ה-HTML באמצעות send_html).

webrepl.send_html(cl) None

מענה לבקשת ה-HTTP על cl עם מסמך HTML מינימלי הטוען את לקוח ה-JavaScript של WebREPL מ-static_host ולאחר מכן סוגר את הסוקט.

קבועים

webrepl.DEBUG: int

הגדירו לערך שונה מאפס כדי לאפשר מעקב מפורט אחר בקשות HTTP ולחיצות יד של WebSocket על sys.stdout. ברירת המחדל היא 0.

webrepl.static_host: str

כתובת ה-URL הבסיסית של לקוח ה-WebREPL הסטטי שבו משתמש send_html. ברירת המחדל היא "https://micropython.org/webrepl/". ניתן לעקוף אותה על ידי הגדרת BASE ב-webrepl_cfg.py או על ידי הקצאה מחדש של תכונת המודול ישירות.

webrepl.listen_s

סוקט ההאזנה הפעיל כעת, או None אם השרת מופסק. מוגדר על ידי start ומנוקה על ידי stop.

webrepl.client_s

סוקט הלקוח המחובר כעת, או None אם אין לקוח מחובר. מוגדר על ידי accept_conn ומנוקה על ידי stop.