WhatsApp 的多裝置架構讓網頁版(web.whatsapp.com)可以作為已連結裝置獨立運作,不再需要手機保持連線。對開發者而言,理解其同步機制有助於設計穩定的整合流程與除錯策略。以下從連線建立、訊息傳遞、狀態同步三個層面說明。
連線建立與工作階段管理
網頁版首次連結時,手機端會透過 QR Code 或配對碼將一組裝置憑證傳遞給瀏覽器。這個過程涉及 Noise Protocol 框架下的金鑰交換,瀏覽器會取得一組獨立的 identity key 與 signed prekey。工作階段建立後,網頁版與伺服器之間維持一條 WebSocket 連線,用於接收即時訊息與狀態更新。
連線中斷時,客戶端會以指數退避策略重連,初始間隔通常為 1 秒,之後逐步增加至 30 秒上限。開發者若觀察到頻繁重連,應檢查網路環境是否封鎖 WebSocket 或限制長連線。多數情況下,企業防火牆會對長時間閒置的連線進行重置,建議在應用層加入心跳偵測。
工作階段有效期方面,已連結裝置的憑證一般可維持 14 天,期間即使手機離線仍可正常收發訊息。若手機連續 14 天未上線,伺服器會要求重新驗證,網頁版將顯示「需要重新連結」的提示。這個設計是為了在安全與可用性之間取得平衡。
訊息送達與端對端加密的邊界
每一則訊息在傳送前,會由發送端裝置以 Signal Protocol 對每個接收裝置分別加密。這意味著當你從網頁版發送訊息給一位聯絡人時,加密作業是在瀏覽器內完成的,伺服器僅負責轉發密文。接收端的手機與其他已連結裝置各自持有對應的會話金鑰,因此能獨立解密。
實務上常見的誤解是以為「手機離線就收不到訊息」。實際上,只要網頁版維持連線,訊息會直接送達網頁版並在本地解密顯示;手機端則在下次上線時透過同步機制補齊這段期間的訊息。同步的範圍通常包含文字訊息、已讀狀態與部分媒體檔案的詮釋資料,但通話記錄與動態狀態(Status)的同步行為較為受限。
開發者需注意,端對端加密不涵蓋備份環節。若使用雲端備份,備份檔可能以未加密或密碼保護的形式存放,這與多裝置同步是兩條不同的路徑。設計資料流程時應避免將兩者混為一談。
裝置數量上限與清理策略
WhatsApp 允許一個帳號連結最多 4 台裝置(不含手機本身),包含網頁版、桌面版與平板應用。當連結第 5 台裝置時,系統會要求使用者先移除其中一台。移除操作可在手機的「已連結裝置」選單中執行,也可從網頁版的設定頁面登出目前工作階段。
清理裝置時應注意下列幾點:
- 登出網頁版後,該工作階段的金鑰材料會失效,但已下載至瀏覽器快取的媒體檔案不會自動清除,需手動清理瀏覽器儲存空間。
- 若裝置遺失,應優先從手機端執行「登出所有裝置」,這會撤銷所有已連結裝置的憑證,比逐一登出更為徹底。
- 企業環境中若多人共用同一台電腦,建議使用瀏覽器的無痕模式或獨立設定檔,避免工作階段殘留。
- 定期檢查已連結裝置清單,一般建議每 30 天檢視一次,移除不再使用的裝置。
裝置數量達到上限時,新增連結會失敗並提示「已達裝置數量上限」。此時應引導使用者至手機端管理清單,而非重複嘗試連結。
實務除錯與相容性考量
在瀏覽器環境中,網頁版依賴 IndexedDB 儲存訊息快取與會話狀態。若使用者啟用了嚴格的儲存空間限制或隱私模式,可能導致資料寫入失敗,表現為訊息延遲顯示或重複載入。開發者進行自動化測試時,應確保測試環境允許 IndexedDB 寫入,並在每次工作階段開始前清除舊資料。
另一個常見問題是系統時間不準確。由於加密協定與訊息排序依賴時間戳,若裝置時間偏差超過數分鐘,可能造成訊息順序錯亂或解密失敗。建議在客戶端啟動時檢查時間同步狀態,必要時提示使用者校正。
效能方面,單一工作階段累積超過數萬則訊息時,瀏覽器記憶體用量會明顯上升。多數情況下,定期封存舊對話或使用桌面版應用可緩解此問題。若需長期保存紀錄,應規劃匯出機制,而非依賴網頁版作為唯一存放位置。
最後,跨平台行為差異值得留意:桌面版應用在背景執行時仍可維持連線,而網頁版在瀏覽器分頁進入休眠後可能被作業系統暫停。設計通知或自動回覆流程時,應將此差異納入考量,避免依賴網頁版作為不中斷的服務端點。