@Override
    public String toString() {
        return "ServiceRequest{"
                + "ip="
                + getIpStr()
                + ", userId="
                + userId
                + ", deviceType="
                + deviceType
                + ", requestId="
                + requestId
                + ", type="
                + type
                + ", turmsRequestBuffer="
                + turmsRequestBuffer
                + '}';
    }
@implNote Note that turms-gateway doesn't parse and validate the request because 1. For
          better performance (zero copy) 2. Decouple the business logic so that turms-service
          servers can change the structure of DTOs without the need to upgrade and restart
          turms-gateway servers turms-service servers should validate it by themselves
turms-server-common/src/main/java/im/turms/server/common/access/servicerequest/dto/ServiceRequest.java