【发布时间】:2018-11-02 04:27:31
【问题描述】:
我正在使用 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);
}
聊天消息
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() + "]");
}
}
我的控制器只收到 message 和 type
我的用户在哪里?
ChatMessage [type=greeting, username=, to=, message=hi]
有人知道我的代码会发生什么吗? 谢谢
【问题讨论】:
-
映射不正确。更改您的 getter 和 setter 以进行正确的反序列化,或在用户字段顶部使用 @JsonProperty。用户字段的 getter 为 getUsername()。不匹配!
标签: java spring spring-boot spring-websocket stomp