优化server sdk

This commit is contained in:
heavyrian2012
2025-02-18 09:53:34 +08:00
parent b95a6b7785
commit ff75379779
22 changed files with 61 additions and 37 deletions
File diff suppressed because one or more lines are too long
@@ -32,7 +32,7 @@ public class ArticlesMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent(topArticle.title); payload.setSearchableContent(topArticle.title);
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
@@ -53,6 +53,7 @@ public class ArticlesMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
try { try {
super.decode(payload);
JSONObject object = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData()))); JSONObject object = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData())));
JSONObject topObj = (JSONObject) object.get("top"); JSONObject topObj = (JSONObject) object.get("top");
this.topArticle = Article.fromJson(topObj); this.topArticle = Article.fromJson(topObj);
@@ -133,7 +133,7 @@ public class CallStartMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setContent(callId); payload.setContent(callId);
payload.setPushContent("音视频通话邀请"); payload.setPushContent("音视频通话邀请");
@@ -175,6 +175,7 @@ public class CallStartMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
callId = payload.getContent(); callId = payload.getContent();
try { try {
@@ -100,7 +100,7 @@ public class CardMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setContent(target); payload.setContent(target);
JSONObject objWrite = new JSONObject(); JSONObject objWrite = new JSONObject();
objWrite.put("t", type); objWrite.put("t", type);
@@ -116,6 +116,7 @@ public class CardMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
target = payload.getContent(); target = payload.getContent();
try { try {
if (!StringUtil.isNullOrEmpty(payload.getBase64edData())) { if (!StringUtil.isNullOrEmpty(payload.getBase64edData())) {
@@ -26,7 +26,7 @@ public class FileMessageContent extends MediaMessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent(name); payload.setSearchableContent(name);
payload.setContent(size + ""); payload.setContent(size + "");
@@ -51,7 +51,7 @@ public class FileMessageContent extends MediaMessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decodeBase(payload); super.decode(payload);
if (payload.getSearchableContent().startsWith(FILE_NAME_PREFIX)) { if (payload.getSearchableContent().startsWith(FILE_NAME_PREFIX)) {
name = payload.getSearchableContent().substring(payload.getSearchableContent().indexOf(FILE_NAME_PREFIX) + FILE_NAME_PREFIX.length()); name = payload.getSearchableContent().substring(payload.getSearchableContent().indexOf(FILE_NAME_PREFIX) + FILE_NAME_PREFIX.length());
@@ -34,7 +34,7 @@ public class ImageMessageContent extends MediaMessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent("[图片]"); payload.setSearchableContent("[图片]");
payload.setBase64edData(Base64.getEncoder().encodeToString(thumbnailBytes)); payload.setBase64edData(Base64.getEncoder().encodeToString(thumbnailBytes));
@@ -44,7 +44,7 @@ public class ImageMessageContent extends MediaMessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decodeBase(payload); super.decode(payload);
thumbnailBytes = Base64.getDecoder().decode(payload.getBase64edData()); thumbnailBytes = Base64.getDecoder().decode(payload.getBase64edData());
} }
@@ -72,9 +72,7 @@ public class LinkMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent(title); payload.setSearchableContent(title);
JSONObject objWrite = new JSONObject(); JSONObject objWrite = new JSONObject();
objWrite.put("d", contentDigest); objWrite.put("d", contentDigest);
@@ -88,9 +86,8 @@ public class LinkMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
title = payload.getSearchableContent(); title = payload.getSearchableContent();
try { try {
if (!StringUtil.isNullOrEmpty(payload.getBase64edData())) { if (!StringUtil.isNullOrEmpty(payload.getBase64edData())) {
JSONObject jsonObject = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData()))); JSONObject jsonObject = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData())));
@@ -66,7 +66,7 @@ public class LocationMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent(title); payload.setSearchableContent(title);
payload.setBase64edData(Base64.getEncoder().encodeToString(this.thumbnailByte)); payload.setBase64edData(Base64.getEncoder().encodeToString(this.thumbnailByte));
@@ -82,6 +82,7 @@ public class LocationMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
if (!StringUtil.isNullOrEmpty(payload.getBase64edData())) { if (!StringUtil.isNullOrEmpty(payload.getBase64edData())) {
this.thumbnailByte = Base64.getDecoder().decode(payload.getBase64edData()); this.thumbnailByte = Base64.getDecoder().decode(payload.getBase64edData());
} }
@@ -14,12 +14,18 @@ abstract public class MediaMessageContent extends MessageContent {
} }
@Override @Override
protected MessagePayload encodeBase() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setRemoteMediaUrl(remoteMediaUrl); payload.setRemoteMediaUrl(remoteMediaUrl);
payload.setMediaType(getMediaType()); payload.setMediaType(getMediaType());
return payload; return payload;
} }
@Override
public void decode(MessagePayload payload) {
super.decode(payload);
remoteMediaUrl = payload.getRemoteMediaUrl();
}
protected abstract int getMediaType(); protected abstract int getMediaType();
} }
@@ -22,7 +22,7 @@ public abstract class MessageContent {
return this; return this;
} }
protected MessagePayload encodeBase() { public MessagePayload encode() {
MessagePayload payload = new MessagePayload(); MessagePayload payload = new MessagePayload();
payload.setType(getContentType()); payload.setType(getContentType());
payload.setPersistFlag(getPersistFlag()); payload.setPersistFlag(getPersistFlag());
@@ -32,13 +32,11 @@ public abstract class MessageContent {
return payload; return payload;
} }
protected void decodeBase(MessagePayload payload) { protected void decode(MessagePayload payload) {
this.mentionedType = payload.getMentionedType(); this.mentionedType = payload.getMentionedType();
this.mentionedTargets = payload.getMentionedTarget(); this.mentionedTargets = payload.getMentionedTarget();
this.extra = payload.getExtra(); this.extra = payload.getExtra();
} }
abstract public int getContentType(); abstract public int getContentType();
abstract public int getPersistFlag(); abstract public int getPersistFlag();
abstract public MessagePayload encode();
abstract public void decode(MessagePayload payload);
} }
@@ -49,7 +49,6 @@ public class MessageContentFactory {
} else { } else {
messageContent = new UnknownMessageContent(); messageContent = new UnknownMessageContent();
} }
messageContent.decodeBase(messagePayload);
messageContent.decode(messagePayload); messageContent.decode(messagePayload);
return messageContent; return messageContent;
} }
@@ -43,7 +43,7 @@ public class MultiCallOngoingMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setContent(callId); payload.setContent(callId);
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
object.put("initiator", this.initiator); object.put("initiator", this.initiator);
@@ -60,6 +60,7 @@ public class MultiCallOngoingMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
this.callId = payload.getContent(); this.callId = payload.getContent();
try { try {
JSONObject object = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData()))); JSONObject object = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData())));
@@ -57,7 +57,7 @@ public class NotDeliveredMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
JSONObject obj = new JSONObject(); JSONObject obj = new JSONObject();
obj.put("mid", this.messageUid); obj.put("mid", this.messageUid);
obj.put("all", this.allFailure); obj.put("all", this.allFailure);
@@ -74,7 +74,7 @@ public class NotDeliveredMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
try { try {
super.decode(payload);
JSONObject obj = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData()))); JSONObject obj = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData())));
this.messageUid = (long) obj.get("mid"); this.messageUid = (long) obj.get("mid");
this.allFailure = (boolean) obj.get("all"); this.allFailure = (boolean) obj.get("all");
@@ -89,7 +89,7 @@ public class RichNotificationMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = encodeBase(); MessagePayload payload = super.encode();
payload.setPushContent(title); payload.setPushContent(title);
payload.setContent(desc); payload.setContent(desc);
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
@@ -113,5 +113,6 @@ public class RichNotificationMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
} }
} }
@@ -35,11 +35,12 @@ public class SoundMessageContent extends MediaMessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
} }
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = encodeBase(); MessagePayload payload = super.encode();
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("duration", duration); jsonObject.put("duration", duration);
payload.setContent(jsonObject.toJSONString()); payload.setContent(jsonObject.toJSONString());
@@ -34,7 +34,7 @@ public class StickerMessageContent extends MediaMessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent("[动态表情]"); payload.setSearchableContent("[动态表情]");
JSONObject objWrite = new JSONObject(); JSONObject objWrite = new JSONObject();
objWrite.put("x", width); objWrite.put("x", width);
@@ -47,8 +47,7 @@ public class StickerMessageContent extends MediaMessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decodeBase(payload); super.decode(payload);
try { try {
JSONObject jsonObject = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData()))); JSONObject jsonObject = (JSONObject) new JSONParser().parse(new String(Base64.getDecoder().decode(payload.getBase64edData())));
width = (int) jsonObject.get("x"); width = (int) jsonObject.get("x");
@@ -38,13 +38,14 @@ public class StreamTextGeneratedMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
this.streamId = payload.getContent(); this.streamId = payload.getContent();
this.text = payload.getSearchableContent(); this.text = payload.getSearchableContent();
} }
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent(text); payload.setSearchableContent(text);
payload.setContent(streamId); payload.setContent(streamId);
return payload; return payload;
@@ -38,13 +38,14 @@ public class StreamTextGeneratingMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
streamId = payload.getContent(); streamId = payload.getContent();
text = payload.getSearchableContent(); text = payload.getSearchableContent();
} }
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent(text); payload.setSearchableContent(text);
payload.setContent(streamId); payload.setContent(streamId);
return payload; return payload;
@@ -56,7 +56,7 @@ public class TextMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent(text); payload.setSearchableContent(text);
if(quoteInfo != null) { if(quoteInfo != null) {
payload.setBase64edData(Base64.getEncoder().encodeToString(quoteInfo.encode().toJSONString().getBytes(StandardCharsets.UTF_8))); payload.setBase64edData(Base64.getEncoder().encodeToString(quoteInfo.encode().toJSONString().getBytes(StandardCharsets.UTF_8)));
@@ -66,6 +66,7 @@ public class TextMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decode(payload);
text = payload.getSearchableContent(); text = payload.getSearchableContent();
if(!TextUtils.isEmpty(payload.getBase64edData())) { if(!TextUtils.isEmpty(payload.getBase64edData())) {
String jsonStr = new String(Base64.getDecoder().decode(payload.getBase64edData()), StandardCharsets.UTF_8); String jsonStr = new String(Base64.getDecoder().decode(payload.getBase64edData()), StandardCharsets.UTF_8);
@@ -24,7 +24,7 @@ public class TipNotificationMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setContent(tip); payload.setContent(tip);
return payload; return payload;
@@ -32,7 +32,7 @@ public class TipNotificationMessageContent extends MessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decodeBase(payload); super.decode(payload);
tip = payload.getContent(); tip = payload.getContent();
} }
@@ -43,14 +43,14 @@ public class TypingMessageContent extends MessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setContent(typingType + ""); payload.setContent(typingType + "");
return payload; return payload;
} }
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decodeBase(payload); super.decode(payload);
typingType = Integer.parseInt(payload.getContent()); typingType = Integer.parseInt(payload.getContent());
} }
} }
@@ -58,7 +58,7 @@ public class VideoMessageContent extends MediaMessageContent {
@Override @Override
public MessagePayload encode() { public MessagePayload encode() {
MessagePayload payload = super.encodeBase(); MessagePayload payload = super.encode();
payload.setSearchableContent("[视频]"); payload.setSearchableContent("[视频]");
payload.setBase64edData(Base64.getEncoder().encodeToString(thumbnailBytes)); payload.setBase64edData(Base64.getEncoder().encodeToString(thumbnailBytes));
@@ -73,7 +73,7 @@ public class VideoMessageContent extends MediaMessageContent {
@Override @Override
public void decode(MessagePayload payload) { public void decode(MessagePayload payload) {
super.decodeBase(payload); super.decode(payload);
thumbnailBytes = Base64.getDecoder().decode(payload.getBase64edData()); thumbnailBytes = Base64.getDecoder().decode(payload.getBase64edData());
try { try {
JSONObject jsonObject = (JSONObject) new JSONParser().parse(payload.getContent()); JSONObject jsonObject = (JSONObject) new JSONParser().parse(payload.getContent());