任何人都可以成為任何人的大型聊天並不是真正的應用程式。在 FastAPI 完整教學(初學者 → 部署)的第 47 課中,我們在一個全新的小型專案中逐步建立聊天室(每個課程一個房間)並透過 WebSocket 進行身份驗證。 RoomManager 逐行:房間字典、使用 setdefault 加入、離開(空房間消失)、成員以及僅到達一個房間的廣播。然後是身份驗證問題:瀏覽器 WebSocket 無法發送授權標頭 - 因此令牌進入查詢字串 (?token=…),我們將其與 cookie 和第一條訊息令牌進行比較。 WebSocket 依賴項在接受之前驗證 JWT 並引發 WebSocketException(1008) – 真實客戶端看到 HTTP 403,TestClient 看到程式碼 1008 和原因。房間僅適用於註冊使用者(驗證與授權),當令牌過期時會自行關閉的連線(帶有超時的 asyncio.wait_for),最後進行清理,以及一位老師透過正常的 HTTP 請求向一個房間宣布。針對真實 uvicorn 伺服器的兩個演示,以及 11 項測試 - 包括如何證明訊息未到達房間。 💻 此影片的程式碼:https://github.com/nileshborate/fastapi/tree/main/47-websockets-rooms 📂 完整課程代碼:https://github.com/nileshborate/fastapi ▶️ 完整播放清單:https://www.youtube.com/playlist?list.L/fastapibv>網址:https://www.nileshtechnology.in ⏱️章節 0:00 簡介 0:05 作業答案(影片 46):私人訊息 + 不能有兩個 Ashas 1:54 從一間教室到真實房間 2:39 今天的計畫 3:13 從哪裡取得代碼 (GitHub) 3:49 記憶體WebSockets 進行身份驗證:無授權標頭 7:45 ws_session依賴性(接受之前) 9:38 房間端點:僅註冊用戶 10:50 令牌過期時關閉連接 12:26 最後:在每種情況下都離開房間 13:03 成員 + 教師通過 HTTP 發佈公告 13:595013 105 39 101019701075 認證。房間演示:訊息留在房間中 16:26 測試:透過 WebSocket 進行身份驗證17:51 測試:房間(證明訊息未到達) 18:53 生產前 19:37 3 個常見錯誤 20:17 面試問題 21:25 回顧、作業和下一步 📝 20:17 面試問題 21:25 回顧、作業和下一步 📝 10 1. deque(maxlen=20)) 2. 刪除/rooms/{room}/members/{username}(僅限教師)關閉該用戶在房間中的所有連接,代碼為 1008,原因為“被教師刪除” 3. 兩者測試 答案在下一個視頻中! 🎯 本影片中的訪談問題 • 如何在 FastAPI 中驗證 WebSocket? • 如何建立聊天室? • 當JWT 在開啟的WebSocket 期間過期時會發生什麼事? ⏭️ 下一個影片:非同步深入探究 – def 與非同步 def、事件循環、線程池、阻塞調用和 run_in_threadpool 👍 喜歡,訂閱 Nilesh Technology 並按鈴觀看下一課! #FastAPI #Python #WebSockets #JWT #RealTime #FastAPITutorial #BackendDevelopment #PythonTutorial #NileshTechnology
免責聲明:info@kdj.com
所提供的資訊並非交易建議。 kDJ.com對任何基於本文提供的資訊進行的投資不承擔任何責任。加密貨幣波動性較大,建議您充分研究後謹慎投資!
如果您認為本網站使用的內容侵犯了您的版權,請立即聯絡我們(info@kdj.com),我們將及時刪除。