och_taxi mogoaisocket-sdk 实现
This commit is contained in:
@@ -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<Integer, List<IMogoOnMessageListener>> mListeners = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, IMogoLifecycleListener> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user