From eb326bdc9691368a7833fd12304c05154b516bab Mon Sep 17 00:00:00 2001 From: lianglihui Date: Thu, 22 Jul 2021 16:58:06 +0800 Subject: [PATCH] =?UTF-8?q?och=5Ftaxi=20mogoaisocket-sdk=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../socket/MogoAiCloudSocketManager.java | 49 +++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java index 9c44b23a20..ab495b4f3b 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java @@ -14,6 +14,7 @@ import com.mogo.service.connection.IMogoOnMessageListener; import com.mogo.service.connection.IMogoSocketManager; import com.mogo.utils.logger.Logger; import com.zhidao.ptech.connsvr.commom.protocol.MogoCommon; +import com.zhidao.socket.ConnectionLifecycleListener; import java.util.ArrayList; import java.util.List; @@ -27,7 +28,7 @@ import java.util.concurrent.ConcurrentHashMap; * 长链实现:基于 netty */ @Keep -public class MogoAiCloudSocketManager implements IMogoSocketManager { +public class MogoAiCloudSocketManager extends ConnectionLifecycleListener implements IMogoSocketManager { private static final String TAG = "MogoAiCloudSocketManager-sdk"; @@ -55,6 +56,7 @@ public class MogoAiCloudSocketManager implements IMogoSocketManager { * key - msgType */ private final Map> mListeners = new ConcurrentHashMap<>(); + private final Map mLifeCycleListeners = new ConcurrentHashMap<>(); /** * 管理消息回执 @@ -104,12 +106,20 @@ public class MogoAiCloudSocketManager implements IMogoSocketManager { @Override public void registerLifecycleListener(int msgType, IMogoLifecycleListener listener) { - + if (mLifeCycleListeners.containsKey(msgType)) { + return; + } + if (!mLifeCycleListeners.containsKey(msgType)) { + mLifeCycleListeners.put(msgType, listener); + } } @Override public void unregisterLifecycleListener(int msgType) { - + if (!mLifeCycleListeners.containsKey(msgType)) { + return; + } + mLifeCycleListeners.remove(msgType); } @Override @@ -161,4 +171,37 @@ public class MogoAiCloudSocketManager implements IMogoSocketManager { } } }; + + @Override + public void onConnectSuccess() { + if (mLifeCycleListeners.size() > 0){ + for (IMogoLifecycleListener lifecycleListener : mLifeCycleListeners.values()){ + if (lifecycleListener != null){ + lifecycleListener.onConnectSuccess(); + } + } + } + } + + @Override + public void onConnectFailure() { + if (mLifeCycleListeners.size() > 0){ + for (IMogoLifecycleListener lifecycleListener : mLifeCycleListeners.values()){ + if (lifecycleListener != null){ + lifecycleListener.onConnectFailure(); + } + } + } + } + + @Override + public void onConnectLost(boolean reconnect) { + if (mLifeCycleListeners.size() > 0){ + for (IMogoLifecycleListener lifecycleListener : mLifeCycleListeners.values()){ + if (lifecycleListener != null){ + lifecycleListener.onConnectLost(); + } + } + } + } }