SocketHandler挪到业务模块
This commit is contained in:
@@ -7,7 +7,6 @@ import android.util.Log;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient;
|
||||
import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener;
|
||||
import com.mogo.cloud.socket.MsgBody;
|
||||
import com.mogo.cloud.socket.SocketHandler;
|
||||
import com.mogo.cloud.socket.SocketManager;
|
||||
import com.mogo.realtime.Interface.RealTimeApisHandler;
|
||||
import com.mogo.realtime.entity.ADASRecognizedResult;
|
||||
@@ -16,6 +15,7 @@ import com.mogo.cloud.socket.WebSocketData;
|
||||
import com.mogo.realtime.location.LocationResult;
|
||||
import com.mogo.realtime.location.MogoRTKLocation;
|
||||
import com.mogo.realtime.entity.OnePerSecondSendContent;
|
||||
import com.mogo.realtime.socket.SocketHandler;
|
||||
import com.mogo.realtime.util.MortonCode;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
@@ -65,7 +65,6 @@ public class SnapshotUploadInTime implements MogoRTKLocation.RTKLocationListener
|
||||
public void start(Context context, boolean useInner, String appId, IMogoCloudSocketOnMessageListener listener) {
|
||||
mContext = context.getApplicationContext();
|
||||
MogoRTKLocation.getInstance().registerRTKLocationListener(this);
|
||||
|
||||
SocketHandler.getInstance().initSocket(context, useInner, appId, listener);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.mogo.realtime.socket;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.SystemClock;
|
||||
|
||||
import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener;
|
||||
import com.mogo.cloud.socket.SocketManager;
|
||||
import com.mogo.cloud.socket.WebSocketData;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.mogo.cloud.socket.WebSocketMsgType.MSG_TYPE_ACK;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 2021/1/22
|
||||
*/
|
||||
public class SocketHandler {
|
||||
private static volatile SocketHandler mInstance;
|
||||
private long serverTime = 0;
|
||||
private long receiveMsgTime = 0;
|
||||
private List<IMogoCloudSocketOnMessageListener> listenerList;
|
||||
|
||||
public static SocketHandler getInstance() {
|
||||
if (mInstance == null) {
|
||||
synchronized (SocketManager.class) {
|
||||
if (mInstance == null) {
|
||||
mInstance = new SocketHandler();
|
||||
}
|
||||
}
|
||||
}
|
||||
return mInstance;
|
||||
}
|
||||
|
||||
/*
|
||||
* useInner: 是否注册自己内部的监听
|
||||
* */
|
||||
public void initSocket(Context context, boolean useInner, String appId, IMogoCloudSocketOnMessageListener listener) {
|
||||
SocketManager.getInstance().init(context, appId);
|
||||
if (useInner) {
|
||||
SocketManager.getInstance().registerOnMessageListener(0x040002, onMessageListener);
|
||||
SocketManager.getInstance().registerOnMessageListener(0x040003, onMessageListener);
|
||||
} else {
|
||||
SocketManager.getInstance().registerOnMessageListener(0x040002, listener);
|
||||
SocketManager.getInstance().registerOnMessageListener(0x040003, listener);
|
||||
listenerList.add(listener);
|
||||
}
|
||||
}
|
||||
|
||||
private final IMogoCloudSocketOnMessageListener<String> onMessageListener = new IMogoCloudSocketOnMessageListener<String>() {
|
||||
@Override
|
||||
public Class<String> target() {
|
||||
return String.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMsgReceived(String message) {
|
||||
WebSocketData webSocketData = GsonUtil.objectFromJson(message, WebSocketData.class);
|
||||
int msgType = webSocketData.getMsgType();
|
||||
if (msgType == MSG_TYPE_ACK.getMsgType()) {
|
||||
if (webSocketData.getUtcTime() > 0) {
|
||||
serverTime = webSocketData.getUtcTime();
|
||||
receiveMsgTime = SystemClock.elapsedRealtime();
|
||||
if (webSocketData.getUpUtcTime() > 0) {
|
||||
long nextDelay = webSocketData.getUpUtcTime() - serverTime;
|
||||
//todo
|
||||
// MogoRTKLocation.getInstance().resetUploadDelay(nextDelay);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void stop() {
|
||||
//todo
|
||||
// MogoRTKLocation.getInstance().unregisterRTKLocationListener();
|
||||
// MogoRTKLocation.getInstance().stop();
|
||||
for (int i = 0; i < listenerList.size(); i++) {
|
||||
SocketManager.getInstance().unregisterOnMessageListener(0x040002, listenerList.get(i));
|
||||
SocketManager.getInstance().unregisterOnMessageListener(0x040003, listenerList.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user