extand socketManager to fit liveSDK

This commit is contained in:
zhongchao
2021-02-03 12:12:47 +08:00
parent ca397a4400
commit ffaccfffc3
4 changed files with 22 additions and 20 deletions

View File

@@ -18,6 +18,7 @@ import com.mogo.realtime.entity.OnePerSecondSendContent;
import com.mogo.realtime.spi.RealTimeProviderImp;
import com.mogo.realtime.util.MortonCode;
import com.mogo.utils.network.utils.GsonUtil;
import com.zhidao.ptech.connsvr.protocol.MogoConnsvr;
import java.util.ArrayList;
import java.util.List;
@@ -33,7 +34,11 @@ public class SocketHandler {
private static final String TAG = "SocketHandler";
private static volatile SocketHandler mInstance;
private static final int HEADER_TYPE = MogoConnsvr.MsgType.mogoMsgTypeCollectSvrNoRspReq.getNumber();
private static final int HIGH_FREQUENCY_CHANNEL_ID = 0x040002; //高频数据
private static final int LOW_FREQUENCY_CHANNEL_ID = 0x040003; //低频数据
private String mAppId;
private long serverTime = 0;
private long receiveMsgTime = 0;
private CloudLocationInfo mLastInfo;
@@ -58,12 +63,10 @@ public class SocketHandler {
* @param appId 外部传入
*/
public void initSocket(Context context, String appId) {
SocketManager.getInstance().init(context, appId);
int msgType = 0x040003;
Log.i(TAG,"msgType : " + msgType);
Log.i(TAG,"msgType integer : " + (Integer)msgType);
SocketManager.getInstance().registerOnMessageListener(0x040002, onMessageListener);
SocketManager.getInstance().registerOnMessageListener(0x040003, onMessageListener);
mAppId = appId;
SocketManager.getInstance().init(context);
SocketManager.getInstance().registerOnMessageListener(HIGH_FREQUENCY_CHANNEL_ID, onMessageListener);
SocketManager.getInstance().registerOnMessageListener(LOW_FREQUENCY_CHANNEL_ID, onMessageListener);
}
public void registerOnMsgListener(IMogoCloudOnMsgListener onMsgListener) {
@@ -126,6 +129,7 @@ public class SocketHandler {
/**
* 发送自车和ADAS数据
*
* @param cloudLocationInfo 自车定位信息
*/
public void sendMsg(List<CloudLocationInfo> cloudLocationInfo) {
@@ -173,14 +177,14 @@ public class SocketHandler {
webSocketData.setData(GsonUtil.jsonFromObject(content));
String msg = GsonUtil.jsonFromObject(webSocketData);
int msgType = 0x040003; //低频数据
int msgType = LOW_FREQUENCY_CHANNEL_ID;
if (cloudLocationInfo.size() > 2) {
msgType = 0x040002; //高频数据
msgType = HIGH_FREQUENCY_CHANNEL_ID;
}
MsgBody msgBody = new MsgBody();
msgBody.msgType(msgType);
msgBody.content(msg);
SocketManager.getInstance().sendMsg(msgBody, msgId -> {
SocketManager.getInstance().sendMsg(mAppId, HEADER_TYPE, msgBody, msgId -> {
for (IMogoCloudOnMsgListener listener : onMsgListenerList) {
if (listener != null) {
listener.onMsgSend(msgId);
@@ -190,8 +194,8 @@ public class SocketHandler {
}
public void stop() {
SocketManager.getInstance().unregisterOnMessageListener(0x040002, onMessageListener);
SocketManager.getInstance().unregisterOnMessageListener(0x040003, onMessageListener);
SocketManager.getInstance().unregisterOnMessageListener(HIGH_FREQUENCY_CHANNEL_ID, onMessageListener);
SocketManager.getInstance().unregisterOnMessageListener(LOW_FREQUENCY_CHANNEL_ID, onMessageListener);
SocketManager.getInstance().release();
onMsgListenerList.clear();
onAckListenerList.clear();