/* loaded from: classes.dex */
public abstract class AbstractMessage implements Message {
public String sessionId;
public short messageId = 0;
public short version = 1;
public int sequenceId = 0;
public byte encryption = 0;
public byte compress = 0;
public int respCode = 0;
public String respDesc = null;
public int respStatus = 0;
private int loginId = -1;
private int serverId = -1;
private String key = C0086f.f389a;
@Override // com.palmfun.common.message.Message
public abstract void decode(ChannelBuffer channelBuffer);
@Override // com.palmfun.common.message.Message
public abstract void encode(ChannelBuffer channelBuffer);
public static Message decodeMessage(ChannelBuffer ib, String ip) throws MessageException {
Short id = Short.valueOf(ib.readShort());
MessageType type = MessageType.get(id.shortValue());
if (type == null) {
String errorMsg = "no message:" + id;
throw new RuntimeException(errorMsg);
}
Class<? extends Message> meta = type.getMsgMeta();
try {
Message message = meta.newInstance();
message.setVersion(ib.readShort());
message.setSequenceId(ib.readInt());
message.setEncryption(ib.readByte());
message.setCompress(ib.readByte());
message.setRespCode(ib.readInt());
message.setRespStatus(ib.readInt());
message.setLoginId(ib.readInt());
message.setSessionId(readString(ib));
message.setServerId(ib.readInt());
message.setKey(readString(ib));
System.out.println("messageId=" + ((int) message.getMessageId()));
System.out.println("key=" + message.getKey());
if (message.getEncryption() == 0) {
message.decode(ib);
} else {
message.decode(ib, ip);
}
return message;
} catch (Exception ex) {
ex.printStackTrace();
throw new MessageException("\u5b9e\u4f8b\u5316\u6d88\u606f\u5f02\u5e38\uff1a" + ex.getMessage());
}
}
public static String readString(ChannelBuffer ib) {
int temp = ib.readInt();
byte[] bytes = new byte[temp];
ib.readBytes(bytes);
return new String(bytes);
}