[IOS&SOCKET]SOCKET切換網絡,SOCKET鏈路不通

在IM項目中,socket建立成功且進行發送socket成功後,切換網絡後會導致發送消息失敗!

經過多次測試得出規律:

1: 移動網絡環境建立的socket連接,那麼切換到wifi後,發送消息失敗;

2: wifi網絡環境建立的socket連接,那麼切換到4g後,發送消息失敗;


那麼,難道socket在某一網絡環境下建立的socket鏈路,那麼切換網絡後,還是使用原來的SOCKET鏈路嗎?

測試結果是符合這樣的,但是爲什麼其他IM 產品卻沒有表現出類似的情況呢?


經過N多搜查資料,還是沒有看到APPLE對IOS SOCKET 建立與網絡的說明。但是在stackoverflow上找到一個類似的問題情況,

最終決定,在切換網絡的時候,關閉鏈路,重新建立連接解決!


        /*
         *   ==============================================================================
         *   1: 網絡環境若從wifi切換到2g/3g/4g,那麼需要關閉AsynShutdown,然後重建立連接AsynConnect
         *   2: 網絡環境若從2g/3g/4g切換到wifi,那麼需要關閉AsynShutdown,然後重建立連接AsynConnect.
         *   ==============================================================================
         */


PS:切換網絡(4g to wifi )後,需要重建立鏈接是正常的,因爲鏈路路由都不一樣了!


參考:

http://stackoverflow.com/questions/30480599/sometimes-socket-dies-when-switching-wifi-to-3g-ios-posix-sockets

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