och_taxi 升级socket长连接版本

This commit is contained in:
lianglihui
2021-07-22 14:49:59 +08:00
parent a1137e3352
commit 831e7ec43c
7 changed files with 181 additions and 68 deletions

View File

@@ -8,11 +8,13 @@ import com.mogo.cloud.socket.IMogoCloudSocketMsgAckListener;
import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener;
import com.mogo.cloud.socket.SocketManager;
import com.mogo.cloud.socket.entity.MsgBody;
import com.mogo.service.connection.IMogoLifecycleListener;
import com.mogo.service.connection.IMogoMsgAckListener;
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;
@@ -26,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-apk";
@@ -54,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<>();
/**
* 管理消息回执
@@ -101,6 +104,24 @@ public class MogoAiCloudSocketManager implements IMogoSocketManager {
SocketManager.getInstance().unregisterOnMessageListener(msgType, mogoCloudSocketOnMessageListener);
}
@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
public void sendMsg(MsgBody body, IMogoMsgAckListener listener) {
Logger.d(TAG, "sendMsg.");
@@ -150,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();
}
}
}
}
}