透過本教學給大家分享微信開發協議總結說明的相關知識,非常不錯,具有一定的參考借鑒價值,有興趣的朋友一起看看吧
#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中文網其他相關文章!