您好,登錄后才能下訂單哦!
這篇文章主要介紹微信開發協議的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
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長連接,客戶端發送,服務器端確認。
以上是“微信開發協議的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。