【Android】Socket連線-RxSocket

LuLiangDev發表於2018-04-15
GitHub專案地址

功能簡介

  • 伺服器斷開、網路錯誤等各種方式導致連線失敗都會自動一直重連上伺服器。
  • 心跳反饋,設定一個時間,每隔一個時間向伺服器傳送資料,保持線上。

使用方式(Android端)

Android端掃碼下載體驗

RxSocket.png

1.初始化RxSocket

PS.此專案使用Rx2

//初始化
RxSocket rxSocket = RxSocket.getInstance();
複製程式碼

2.重連機制連線

/**
* 重連機制的訂閱
* 引數1:伺服器地址
* 引數2:埠號
*/
rxSocket.reconnection(HOST, PORT)
        .subscribe(s -> Log.d("server response data", s));
複製程式碼

3.心跳重連機制連線(不可動態改變心跳資料)

/**
* 心跳、重連機制的訂閱
* 引數1:伺服器地址
* 引數2:埠號
* 引數3:心跳傳送時間
* 引數4:心跳傳送資訊
*/
rxSocket.reconnectionAndHeartBeat(HOST, PORT, 5, "---Hello---")
        .subscribe(s -> Log.d("server response data", s));
複製程式碼

4.心跳重連機制連線(可動態改變心跳資料)

動態改變心跳資料主要針對於,比如電量cpu記憶體溫度等情況需要動態設定心跳資料。

/**
* 心跳、重連機制的訂閱(心跳資料動態改變)
* 引數1:伺服器地址
* 引數2:埠號
* 引數3:心跳傳送時間
*/
rxSocket.reconnectionAndHeartBeat(HOST, PORT, 5)
		.flatMap(aLong -> mRxSocket.send(mEtHeartText.getText().toString()))
        .compose(mRxSocket.<String>heartBeatChange())
        .subscribe(s -> Log.d("server response data", s));
複製程式碼

5.傳送資料

mSubscribe = rxSocket.send("hello").subscribe()
複製程式碼

6.應用退出或者不需要socket取消訂閱

//取消訂閱
mSubscribe.dispose();
複製程式碼

使用方式(服務端)

使用此軟體就不用自己寫伺服器,先模擬自己測試完畢再跟伺服器聯調。 服務端模擬軟體下載(僅支援Windows系統) 按照圖片標註設定就行了。測試是否接收到資料能否傳送資料就行了。

網路除錯助手.png

意見反饋

如果遇到問題或者好的建議,請反饋到:issue、927195249@qq.com 或者LiangLuDev@gmail.com

如果覺得對你有用的話,贊一下吧!

相關文章