Android 使用Socket坑點總結

  1. 前端使用的Socket框架 AndroidAsync
    框架地址:https://github.com/koush/AndroidAsync

2.後端使用的Socket框架 Workerman
TP 使用規則 https://www.kancloud.cn/manual/thinkphp5/235128
使用流程

衆所周知移動端的網絡是不穩定的,所以經常會出現網絡波動導致Socket斷開在重連
問題一:在Socket斷開重新連接時,消息緩存池中存在的消息有時候想客戶端發送,有時候不發送。
原因:在後臺 wokerMan所有的連接的並不是在一個進程中,所以有的時候回客戶端發送消息
解決方法:在連接成功之後向服務器發起通信 告知服務器連接 服務器遍歷緩存池 同時服務器通過Socket向客戶端發送消息
問題二:在Socket重新連接時連接多次
原因:在socket斷開時 客戶端知道 但是服務之並不知道 當前連接已經斷開 ,所以在重新連接的時候服務器的此條連接已經存在,所以請求失敗。
解決方法:在重新連接的時候通知服務器需要關閉的連接id
問題三:客戶端由於不知名原因未收到服務器發送的消息
解決方法:添加一個按鈕用來同步socket緩存池中的消息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章