iOS,什么应用或者场景下需要使用socket编程?
大家讲道理
大家讲道理 2017-04-18 09:33:47
0
2
311

一些应用只是使用了HTTP编程,也就是只用了AFNetworking。 但是听说IM类的应用需要使用到socket,是为什么呢?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(2)
左手右手慢动作

http是一次性的,socket可以實現長連接,凡是一個來回網絡請求解決不了問題的都會用socket。
例如微信裡刷新朋友圈、下載圖片用http請求,收訊息因為這邊不知道什麼時候來訊息就搞個socket一直監聽,發訊息因為會比較頻繁用http每次都要重新握手所以也要用socket,還有音視訊通話,斷點續傳等等都要用socket。理論上啟動微信或斷網重連後的同步訊息可以用http去請求沒有收到的訊息,但因為諸多原因也是用socket。

當然我上面說的只是最基本的原因,用socket還有非常多的原因是http實現不了的。
凡是http能實現的,socket都能實現,因為http也只是socket via tcp的一種應用場景的協議。

IM大都是在socket基礎上自己搞的一套傳輸協議,類似http,只不過是針對自己的業務開發的。

阿神
  • IM應用伺服器為了獲取用戶登入狀態要不停地發送「心跳包」確認用戶在線和用戶的網絡情況,用HTTP的話會有太多冗餘信息(HEADER,CONTENT-TYPE,STATUS)之類的。

  • 很多IM應用為了安全性或壓縮資料會實現自己的網路協定。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板