in eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/codec/Codec.java [204:246]
private static Object deserializeBody(String bodyJsonString, Header header) throws JsonProcessingException {
Command command = header.getCmd();
switch (command) {
case HELLO_REQUEST:
case RECOMMEND_REQUEST:
return JsonUtils.parseObject(bodyJsonString, UserAgent.class);
case SUBSCRIBE_REQUEST:
case UNSUBSCRIBE_REQUEST:
return JsonUtils.parseObject(bodyJsonString, Subscription.class);
case REQUEST_TO_SERVER:
case RESPONSE_TO_SERVER:
case ASYNC_MESSAGE_TO_SERVER:
case BROADCAST_MESSAGE_TO_SERVER:
case REQUEST_TO_CLIENT:
case RESPONSE_TO_CLIENT:
case ASYNC_MESSAGE_TO_CLIENT:
case BROADCAST_MESSAGE_TO_CLIENT:
case REQUEST_TO_CLIENT_ACK:
case RESPONSE_TO_CLIENT_ACK:
case ASYNC_MESSAGE_TO_CLIENT_ACK:
case BROADCAST_MESSAGE_TO_CLIENT_ACK:
case HELLO_RESPONSE:
case RECOMMEND_RESPONSE:
case SUBSCRIBE_RESPONSE:
case LISTEN_RESPONSE:
case UNSUBSCRIBE_RESPONSE:
case HEARTBEAT_RESPONSE:
case ASYNC_MESSAGE_TO_SERVER_ACK:
case BROADCAST_MESSAGE_TO_SERVER_ACK:
case CLIENT_GOODBYE_REQUEST:
case CLIENT_GOODBYE_RESPONSE:
case SERVER_GOODBYE_REQUEST:
case SERVER_GOODBYE_RESPONSE:
// The message string will be deserialized by protocol plugin, if the event is cloudevents, the body is
// just a string.
return bodyJsonString;
case REDIRECT_TO_CLIENT:
return JsonUtils.parseObject(bodyJsonString, RedirectInfo.class);
default:
log.warn("Invalidate TCP command: {}", command);
return null;
}
}