1.發佈的訊息對應一個ID(只要單一方向唯一即可,伺服器端可能會根ID判斷重複接收),訊息重傳機制確保有限次的重試,重試失敗給予使用者提示,發送成功會回饋確認,客戶端只有收到確認訊息才知道發送成功。 發送訊息可能不會產生新SyncKey。
2.基於版本號(SynKey)的狀態訊息同步機制,增量、有序傳輸需求水到渠成。長連線通知/短連線取得、確認等,互動方式簡單,確保了訊息可靠譜、準確無誤到達。
3.客戶端/伺服器端都會儲存訊息ID處理記錄,避免被重複消費客戶端取得最新訊息,但未確認,伺服器端不會認為該訊息被消費掉。下次客戶端會重新獲取,會查詢目前訊息是否已處理過。根據一些現象猜測。
4.整體來看,微信協定跨平台(TCP或HTPP都可呈現,處理方式可統一),透過「握手」同步,很可靠,無論哪一個平台都可以支援的很好
5.微信協定最小成本為16字節,大部分時間若干個訊息包和在一起,批次傳輸。微信協定說不上最簡潔,也不是最節省流量,但是非常成功的。
6.若伺服器偵測到一些不確定因素,可能會導致微啟用安全通訊端層SSL協定進行常規的TCP長連線傳輸。短連線都沒有改變
7.發送訊息方式
發送訊息走已經建立的TCP長連線通道,發送訊息到伺服器,然後接受確認訊息等,產生一次互動。
小夥伴接收到訊息閱讀也會收到伺服器端通知,產生一次互動等。
可以確定,微信發送訊息走TCP長連接方式,因為不對自身狀態資料產生影響,應該不交換SyncKey。
在低速網路下,大概會看到訊息傳送中的提示,屬於訊息重發機制
網路不好有時客戶端會出現傳送失敗的紅色感嘆號
#已傳送至伺服器但未收到確認的訊息,用戶端顯示紅色感嘆號,再次重發,伺服器作為重複訊息處理,回饋確認
上傳圖片,會根據圖片大小,分割成若干部分(大概1.5K被分割為一部分),同一時間點,客戶端會發起若干次POST請求,各自上傳成功之後,伺服器大概會合併成一個完整圖片,回傳一個縮圖,顯示在APP聊天視窗內。 APP作為常規的文字訊息發送到伺服器端
上傳音頻,則單獨走TCP通道,一個兩秒的錄製音頻,客戶端錄製完畢,分為兩塊傳輸,一塊最大1.5K左右,服務端回應一則資料通知確認收到。共三次資料傳輸。
音訊和純文字訊息一致,都是走TCP長連接,客戶端發送,伺服器端確認。
以上是微信開發協議的說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能