前言
和HTTP請求流程差不多,區別就是http請求每次更新資料都要向對應的埠傳送一次請求,之後返回資料之後關閉連線,而長連線就是客戶端和伺服器一直連著,當有資料更新的時候,伺服器會直接發給客戶端,不需要客戶端主動請求。
在這過程中,為了保證服務端和客戶端一直是連線狀態,客戶端會定時不間斷的傳送心跳資料到伺服器,表明還連線著,不然長時間沒有資料更新,會斷開連線,這樣一直有心跳資料的時候,就會保證了連線沒有中斷,至於心跳資料的內容,就是前端後端共同商量的,和請求的資料是單獨的。就相當於單獨出來一個請求,資料是商量之後的心跳資料。
目的:
想要完成的功能:
在一個APP中插入一個TCP Socket,然後連線到我的Server,可以遠端接受我的指令進行一些操作。
三、程式碼實現
流程
- 傳送連線請求
- 請求成功開始定時傳送心跳資料
- 向伺服器傳送資料
- 伺服器向客戶端傳送資料,客戶端改變
- 斷網重連
- 使用者關閉長連線
1、傳送連結請求
建立一個tcp長連線,並且可以設定tcp內容,這個是內容是自己用來區分不同的socket請求的,然後通過connectToHost可以傳送連線請求