WebSocket 長連線與訊息同步的底層邏輯
WhatsApp網頁版並非獨立運作的應用程式,而是透過手機端建立一個鏡像會話。當你在瀏覽器開啟 web.whatsapp.com 並掃描 QR code 後,瀏覽器會與 WhatsApp 伺服器建立一條 WebSocket 連線(多數情況下使用 wss 協定,連接埠為 443),這條連線負責即時推送新訊息、送達狀態與已讀回條。手機端在此過程中扮演「金鑰保管者」的角色:它透過 Noise Pipes 協定將端對端加密所需的會話金鑰材料傳遞給瀏覽器分頁,且每次頁面重新載入都會重新協商。實測上,從手機送出訊息到網頁版顯示,延遲通常落在 200–800 毫秒之間,若處於跨區網路則可能超過 2 秒。
連線維持與斷線重連
為避免連線被中間裝置中斷,WhatsApp網頁版會每 30–60 秒發送一次心跳封包(ping/pong)。當瀏覽器切換到背景分頁時,部分瀏覽器會節流計時器,導致心跳延遲,此時你可能觀察到訊息延遲推送。建議在需要長時間接收訊息時,將分頁保持在前景或使用支援背景執行的瀏覽器。若連線中斷,頁面會自動嘗試重連,通常重試間隔為 2 秒、4 秒、8 秒,最多重試約 5 次;若手機同時離線,則網頁版無法自行恢復,必須重新掃碼。
端對端加密在瀏覽器端的實作邊界
訊息內容在傳輸過程中始終維持端對端加密,但瀏覽器端與手機端共享同一組會話金鑰,這意味著網頁版本身即是一個受信任的端點。因此,若電腦感染了惡意擴充功能或鍵盤側錄程式,攻擊者可在訊息解密後攔截內容。以下為幾項具體的防護建議:
- 使用無痕模式或獨立瀏覽器設定檔登入,避免與其他網站共用 Cookie 與擴充功能。
- 每次使用完畢後,從手機的「已連結的裝置」清單中登出該次網頁會話,而非僅關閉分頁。
- 確認網址列顯示鎖頭圖示且網域為 web.whatsapp.com,避免釣魚頁面偽造掃碼介面。
- 定期檢查手機端「已連結的裝置」列表,移除不認識的瀏覽器或電腦。
需注意,網頁版不會繞過端對端加密,但它也無法防止已入侵你電腦的惡意程式。若處理高度敏感資訊,建議优先使用手機應用程式,並搭配裝置層級的磁碟加密。
多帳號切換與工作階段的技術限制
WhatsApp網頁版支援在同一個瀏覽器分頁中切換多個帳號,但其底層仍是各自獨立的 WebSocket 連線與金鑰協商。實務上,每個帳號都需要對應一台已登入的手機,且同一支手機號碼無法同時在兩個瀏覽器分頁中保持活躍——後掃碼的連線會取代先前的連線,造成先前的分頁顯示「手機未連線」。若你需要同時操作多個帳號,通常的做法是使用不同的瀏覽器設定檔或容器分頁(如 Firefox 的 Multi-Account Containers),讓每個帳號擁有獨立的儲存空間與連線。
常見錯誤與排查方式
| 現象 | 可能原因 | 處理方式 |
|---|---|---|
| QR code 一直轉圈無法載入 | 瀏覽器封鎖了 WebSocket 或第三方腳本 | 檢查擴充功能(如廣告阻擋器)是否攔截 wss 連線,暫時停用後重新載入 |
| 掃碼後顯示「無法連結裝置」 | 手機與電腦時間不同步,憑證驗證失敗 | 將兩端裝置設為自動校時,誤差控制在 5 分鐘內 |
| 訊息可送出不顯示已讀 | 手機端處於飛航模式或背景被系統限制 | 確認手機 WhatsApp 在背景執行且網路暢通 |
| 檔案上傳卡在 99% | 檔案超過 2 GB 或瀏覽器記憶體不足 | 壓縮檔案或改用分卷傳輸,並關閉其他高記憶體分頁 |
多數情況下,上述問題可透過重新整理頁面並重新掃碼解決;若反覆發生,建議清除該網站的儲存資料(IndexedDB 與 Service Worker 快取)後再試。
檔案傳輸的格式、大小與效能實測
網頁版支援傳送文件、圖片、影片與語音訊息,但與手機版相比仍有若干限制。文件類型的單檔上限一般為 2 GB(與手機版一致),但瀏覽器端在處理超過 500 MB 的檔案時,記憶體佔用會明顯上升,在 8 GB 記憶體的電腦上可能出現分頁卡頓。圖片會在上傳前由瀏覽器端壓縮,預設最長邊縮至 1600 像素,若需保留原始畫質,應以「文件」形式傳送。以下為實務上可遵循的步驟:
- 點擊迴紋針圖示,選擇「文件」而非「相片與影片」,以避免自動壓縮。
- 確認檔案大小未超過 2 GB;若接近上限,先以壓縮工具分卷。
- 上傳期間保持分頁在前景,避免瀏覽器節流導致連線逾時。
- 傳送後從手機端確認檔案已成功送達,再關閉分頁。
需留意,網頁版不支援手機版的「檢視一次」媒體設定,也無法在瀏覽器內直接編輯圖片。若你的工作流程高度依賴這些功能,仍應以手機應用程式為主。