IOS開發之SOCKET長連線的使用

kunnan發表於2017-11-06

前言

GitHub

和HTTP請求流程差不多,區別就是http請求每次更新資料都要向對應的埠傳送一次請求,之後返回資料之後關閉連線,而長連線就是客戶端和伺服器一直連著,當有資料更新的時候,伺服器會直接發給客戶端,不需要客戶端主動請求。

在這過程中,為了保證服務端和客戶端一直是連線狀態,客戶端會定時不間斷的傳送心跳資料到伺服器,表明還連線著,不然長時間沒有資料更新,會斷開連線,這樣一直有心跳資料的時候,就會保證了連線沒有中斷,至於心跳資料的內容,就是前端後端共同商量的,和請求的資料是單獨的。就相當於單獨出來一個請求,資料是商量之後的心跳資料。

目的:
想要完成的功能:

在一個APP中插入一個TCP Socket,然後連線到我的Server,可以遠端接受我的指令進行一些操作。

三、程式碼實現

流程

  • 傳送連線請求
  • 請求成功開始定時傳送心跳資料
  • 向伺服器傳送資料
  • 伺服器向客戶端傳送資料,客戶端改變
  • 斷網重連
  • 使用者關閉長連線

1、傳送連結請求

建立一個tcp長連線,並且可以設定tcp內容,這個是內容是自己用來區分不同的socket請求的,然後通過connectToHost可以傳送連線請求

相關文章