zhou.xiaoning 4 年之前
父節點
當前提交
449a4197fa

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/business/quote/QuoteManager.kt

@@ -111,7 +111,7 @@ class QuoteManager {
      * 订阅商品实时行情
      * @param callback Function2<[@kotlin.ParameterName] Boolean, [@kotlin.ParameterName] Error?, Unit>?
      */
-    private fun subscriptQuote(callback: ((isCompleted: Boolean, err: Error?) -> Unit)?) {
+    fun subscriptQuote(callback: ((isCompleted: Boolean, err: Error?) -> Unit)?) {
         // 当前是否已经登陆
         val loginRsp = GlobalDataCollection.instance?.loginRsp.guard {
             if (callback != null) {

+ 19 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/MyApplication.kt

@@ -263,7 +263,26 @@ class MyApplication : BaseApplication() {
         }
 
         override fun onReconnectChangeState(socket: MTP2Socket<Packet40>?, state: Int) {
+            LogUtils.eTag("RAM_RC", "++++++++++++++ Reconnecting ++++++++++++++")
+            LogUtils.eTag("RAM_RC", String.format("行情链路断网重连状态变更:%d", state))
+
+            when (state) {
+                MTP2Socket.ReconnectChangeState_BeginReconnect -> { // 开始断网重连
+                    // 停止心跳
+                    socket?.stopBeatTimer()
+                }
+                MTP2Socket.ReconnectChangeState_ReconnectSuccessed -> { // 重连成功,将进行业务操作
+                    // 重新订阅当前商品行情
+                    quoteManager?.subscriptQuote { _, _ ->  }
+                }
+                MTP2Socket.ReconnectChangeState_LoginFail -> {  // 重连成功后业务操作失败,由业务模块发起
 
+                }
+                MTP2Socket.ReconnectChangeState_Logined -> { // 重连成功后业务操作成功(包括交易服务的账户登录状态更新或行情服务的行情订阅等)
+                    // 开始心跳
+                    socket?.startBeatTime()
+                }
+            }
         }
     }