[V2X]添加新的长链类型
[V2X]添加新的长链类型
This commit is contained in:
@@ -4,6 +4,7 @@ package com.mogo.cloud.socket;
|
||||
import static com.mogo.cloud.socket.SocketServicesConstants.getTag;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
@@ -11,6 +12,8 @@ import com.elegant.log.simplelog.Logger;
|
||||
import com.elegant.network.utils.GsonUtil;
|
||||
import com.google.protobuf.ByteString;
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import com.google.protobuf.Message;
|
||||
import com.google.protobuf.MessageOrBuilder;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.cloud.socket.entity.MsgBody;
|
||||
@@ -20,6 +23,7 @@ import com.mogo.cloud.socket.third.ThirdSocketManager;
|
||||
import com.zhidao.ptech.connsvr.protocol.MogoConnsvr;
|
||||
import com.zhidao.socket.ConnectionLifecycleListener;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@@ -35,6 +39,8 @@ public class SocketManager implements IMogoCloudSocketManager {
|
||||
private static volatile SocketManager mInstance;
|
||||
private MoGoAiCloudClientConfig cloudClientConfig;
|
||||
|
||||
private static final String TAG = "SocketManager";
|
||||
|
||||
private SocketManager() {
|
||||
cloudClientConfig = MoGoAiCloudClient.getInstance().getAiCloudClientConfig();
|
||||
}
|
||||
@@ -160,15 +166,25 @@ public class SocketManager implements IMogoCloudSocketManager {
|
||||
IMogoCloudSocketOnMessageListener listener = iterator.next();
|
||||
if (payload.getPayload() != null) {
|
||||
Class clz = listener.target(msgType);
|
||||
if ("SocketDownDataProto".equals(clz.getSimpleName())) {
|
||||
obj = SocketDownData.SocketDownDataProto.parseFrom(payload.getPayload());
|
||||
if (MessageOrBuilder.class.isAssignableFrom(clz)) {
|
||||
try {
|
||||
Constructor c = clz.getDeclaredConstructor(Void.class);
|
||||
if (c != null) {
|
||||
c.setAccessible(true);
|
||||
MessageOrBuilder o = (MessageOrBuilder)c.newInstance();
|
||||
o.getDefaultInstanceForType().getParserForType().parseFrom(payload.getPayload());
|
||||
obj = o;
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
Log.e(TAG, Log.getStackTraceString(t));
|
||||
}
|
||||
} else {
|
||||
obj = GsonUtil.objectFromJson(payload.getPayload().toStringUtf8(), listener.target(msgType));
|
||||
}
|
||||
}
|
||||
if (listener != null) {
|
||||
if (listener != null && obj != null) {
|
||||
if (SocketBuildConfig.isPrintLog) {
|
||||
Logger.d(getTag(), "received msgId = %s, content = %s", msgId, payload.getPayload().toStringUtf8());
|
||||
Logger.d(getTag(), "received msgId = %s, msgType = %d, content = %s", msgId, msgType, obj);
|
||||
}
|
||||
listener.onMsgReceived(msgType, obj);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user