QR 配對的實際流程與瀏覽器端限制
掃碼登入不是把帳號密碼送給瀏覽器,而是手機端與網頁端透過一組短時效憑證完成金鑰交換。手機在已登入狀態下掃描網頁顯示的 QR 碼後,會把一組配對金鑰用既有通道回傳給伺服器,網頁端再以長輪詢取得這組金鑰並建立加密連線。整個過程通常落在 5 到 15 秒內,若超過 60 秒未完成,QR 碼會自動失效並需要重新整理。
瀏覽器端有幾個硬性條件:必須允許 WebSocket 與 IndexedDB,且不能封鎖第三方儲存。多數情況下 Chrome 80 以上、Edge 80 以上、Firefox 78 以上、Safari 14 以上都能正常運作。常見錯誤是企業環境把 wss:// 流量擋掉,畫面會停在「正在連線」而沒有明確錯誤碼,這時可打開開發者工具的 Network 面板,確認 WebSocket 握手是否回傳 101。
配對階段的具體檢查點
- 系統時間:裝置時間誤差超過 5 分鐘時,憑證校驗容易失敗,建議開啟自動校時。
- 相機權限:手機端掃碼需要相機權限,若曾拒絕過,需到系統設定手動恢復。
- 瀏覽器擴充:廣告阻擋或隱私類擴充常攔截長輪詢請求,可先以無痕模式排除。
- 網路切換:配對過程中切換 Wi-Fi 與行動網路,會導致連線中斷並需重新掃碼。
多裝置同步的資料流與延遲來源
網頁版並非從手機即時拉取訊息,而是各自與伺服器維持獨立的加密通道。訊息送達時,伺服器會分別推送給每個已配對的裝置,因此網頁端在手機離線時仍可收發訊息,這也是多裝置架構與早期鏡像模式的差異。一般情況下,同一帳號最多可同時連結 4 台已配對裝置,加上手機本身共 5 個端點。
延遲通常來自三個環節:一是推播通道的長連線斷開後的重連間隔,二是大量歷史訊息初次同步時的索引建立,三是瀏覽器把分頁切到背景後對計時器的節流。多數情況下,首次在新瀏覽器登入需要同步最近約 6 個月的對話,視訊息量多寡可能耗時 1 到 10 分鐘,期間介面可操作但搜尋結果可能不完整。
同步狀態的判讀方式
開發者工具中的 Application 面板可觀察 IndexedDB 的寫入情況,若資料表持續增長代表同步仍在進行。若長時間沒有寫入且訊息列表停在某個時間點,通常是連線已斷但前端未更新狀態,可嘗試重新整理頁面而非直接登出,登出會清除本機快取並使下次同步從頭開始。
| 現象 | 可能原因 | 處理方向 |
|---|---|---|
| QR 碼重複失效 | 系統時間偏差或相機對焦失敗 | 校正時間、改用實體鍵盤輸入配對碼 |
| 訊息只進不出 | WebSocket 被代理伺服器中斷 | 檢查 101 握手、改用有線網路 |
| 搜尋缺舊訊息 | 歷史同步尚未完成 | 保持分頁在前景、等待索引建立 |
| 登入後立即被登出 | 瀏覽器封鎖本機儲存 | 允許第一方儲存、關閉嚴格隱私模式 |
排錯順序:從網路層到應用層
面對無法登入或同步異常,建議按固定順序排查,避免同時改動多個變因。第一步確認網路可達性,用瀏覽器開啟 https://web.whatsapp.com 觀察是否被重新導向到錯誤頁;第二步檢查憑證鏈,企業代理若替換憑證會導致 WebSocket 失敗;第三步清除站點資料後重試,這會移除本機快取但不會影響手機端訊息;第四步換一個瀏覽器設定檔測試,用以區分是帳號問題還是環境問題。
若問題只出現在特定網路,常見於 DNS 污染或連接埠限制。多數情況下 WebSocket 走 443 埠,與 HTTPS 相同,較少被單獨封鎖,但部分防火牆會對長連線設閒置上限,例如 300 秒無資料就切斷,這會造成每隔數分鐘斷線一次。此時可請網路管理端調整逾時設定,或改用行動網路熱點驗證。
六個可重複執行的檢查步驟
- 確認裝置時間與標準時間誤差在 1 分鐘內。
- 以無痕視窗開啟頁面,排除擴充與快取干擾。
- 在開發者工具確認 WebSocket 回傳 101 且無憑證錯誤。
- 檢查 IndexedDB 是否有持續寫入,判斷同步是否進行中。
- 重新整理頁面而非登出,保留本機快取以節省同步時間。
- 若仍失敗,換瀏覽器設定檔或裝置重現,縮小問題範圍。
開發者常見的整合誤區
不少人會嘗試用自動化工具模擬網頁版操作,這條路徑在實務上不穩定。網頁版前端會偵測瀏覽器特徵,且配對流程綁定手機端授權,無法在無手機的情況下完成。若目標是收發訊息,應評估官方提供的商業 API,而非逆向網頁版協定;後者不僅違反服務條款,協定欄位也可能隨時調整,維護成本通常高於預期。
另一個誤區是把網頁版當成備份工具。本機 IndexedDB 只是快取,清除瀏覽器資料後即消失,且不包含完整的媒體檔案。多數情況下媒體檔案採按需下載,未點開的圖片與影片不會完整落地。若需要長期保存,應在手機端設定定期匯出,或使用系統層級的備份機制,而非依賴瀏覽器儲存。
最後是效能面:長時間開著分頁會累積數百 MB 的記憶體占用,尤其在群組訊息量大時更明顯。建議在低規格裝置上限制同時開啟的分頁數量,並定期重新整理以釋放記憶體。若發現輸入框延遲,可先關閉其他分頁再測試,通常能恢復到可接受的反應速度。