Spring websocket (stomp, sockjs): контроллер не получил целые данные - PullRequest
0 голосов
/ 02 ноября 2018

Я меняю свое приложение, используя stomp и sockjs.

Но почему-то мой контроллер не может получить все мои данные от клиента.

Это со стороны моего клиента .

>>> SEND
destination:/app/hello
content-length:57

{"type":"greeting","user":"james","to":"","message":"hi"}�

с моим контроллером

@MessageMapping("/hello")
public void greeting(ChatMessage message, SimpMessageHeaderAccessor headerAccessor) throws Exception{
    logger.debug(">>>[GREETING]\n{}", message.toString());

    messagingTemplate.convertAndSend("/topic", message);
}

ChatMessage

public class ChatMessage {
private String user;

private String to;

private String message;

private String type;

///

@Override
public String toString(){
    return String.format("ChatMessage [type=" + getType() + ", username="+ getUsername() +", to=" + getToUser() + ", message=" + getMessage() + "]");
}

}

Мой контроллер получает только сообщения и типа

где мой пользователь ?

ChatMessage [type=greeting, username=, to=, message=hi]

Кто-нибудь знает, что происходит с моим кодом? Thx

1 Ответ

0 голосов
/ 09 ноября 2018

В итоге я меняю свою модель ChatMessage

public class ChatMessage {

private Map<String, Object> map = new HashMap<>();

@JsonAnyGetter
public Map<String, Object> any(){
    return this.map;
}

public Map<String, Object> getMap() {
    return this.map;
}

@JsonAnySetter
public void setMap(String key, Object value) {
    map.put(key, value);
}

@Override
public String toString() {
    return "Map [map=" + map + "]";
}
}

Таким образом, у меня может быть другой тип сообщения, потому что иногда я хочу отправить сообщение SDP и описание предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...