微信協議分析 多點登陸

2022-02-12 18:38:19 字數 521 閱讀 9815

im產品的多點登陸邏輯特別複雜,很難做到很好的使用者體驗,就像新版mac handoff 功能也不少人在噴。

伺服器不用儲存完整訊息歷史,通過客戶端對push訊息的ack保證訊息送達,協議保證訊息至少一次推送到主客戶端,然後訊息即可刪除;伺服器只儲存未下發到主客戶端的訊息。

移動客戶端訊息刪除不會同步到 web版。

每個操作(發訊息、清未讀等),應答後,因為synckey 變化了,sync協議上會產生乙個空的sync操作用於更新synckey。

為啥不通過應答更新synckey?  併發情況直接更新會造成丟訊息問題,也保證協議的統一性。

對於主客戶端:

猜想是這樣: 請求時帶上synckey(local), 伺服器在inc synckey得到synckey(current) == synckey(local) 時,直接返回synckey(current),否則返回sync(local) 並推送new synckey notify。因為此時確保客戶端沒有未收訊息,壞情況應答比新訊息慢,也不會有啥問題。

Android 微信登陸

implementation com.tencent.mm.opensdk wechat sdk android without mta android debug buildtypes debug 5.建乙個包 名字叫wxapi 必須一致 在這個包裡建立乙個類,wxentryactivity 一致...

java微信授權登陸

專案列表 com.souvc.weixin.pojo類 token 憑證自己生成get 和set方法 public class token weixinoauth2token網頁授權資訊自己生成get 和set方法 public class weixinoauth2token weixinuseri...

《五》微信網頁登陸授權

登入 route get login home logincontroller login 首頁 route get home logincontroller index 退出 如果授權成功就會返回乙個 user 物件。to to 為第乙個引數,預設為這個 url auth user auth au...