我正在使用Spring Websocket Plugin,我想向客户端发送一些日志输出。
这是我的代码:
@MessageMapping("/run")
@SendTo("/topic/run")
protected String run(@Payload WebForm form) {
doSomeWithForm(form)
return "started"
}
GSP:
$(function () {
var socket = new SockJS("${createLink(uri: '/stomp')}");
var client = Stomp.over(socket);
client.connect({}, function () {
client.subscribe("/topic/run", function (message) {
$("#log").append(message.body);
});
});
$("#submitBtn").click(function() {
client.send("/app/run", {}, JSON.stringify({
'type':$("#type").val(),
'id':$("#id").val()
}));
});
});
到目前为止效果很好,但是message.body看起来像""This my return text""
。
为什么有两个“?我怎样才能提取这个?
答案 0 :(得分:1)
尝试JSON.parse(message.body)
。
注意:该行为将随着grails-2.5 / grails-3.0 shipping spring-4.1 +的变化而变化。从那个春天版本开始,普通的字符串有效负载将不再是json编码,这意味着你的js代码中的message.body
将具有字符串值而不需要双引号