@Messagemapping с Grails Spring-Websocket Plugin
-
02-01-2020 - |
Вопрос
Я становлюсь новичками, и работая над завоеванием Websockets, работающих в приложении.Я получил большую часть этого, за исключением того, что я не мог выяснить, как пройти параметры методам, аннотированными с @messageMappe.
Это работает:
class MyController{
@MessageMapping(value="/start")
protected void startProcess(){ }
}
.
Что мне нужно что-то подобное для работы:
@MessageMapping(value="/start/{file}")
protected void startProcess(){
String file = params.file
//do somethig with the file...
}
.
Но это не работает.Я попытался изменять URLMAppings.groovy, @PathVariable.Я уверен, что я скучаю с чем-то простым.Любые указатели?
Решение
Чтобы получить что-то образующее путь использовать @DestinationVariable
(см.
Вот рабочий фрагмент (Grails 2.4.3, на основе примера плагина):
// Domain Class
class Foo {
String name
String desc
}
// controller method
@MessageMapping("/hello/{file}")
@SendTo("/topic/hello")
protected String hello(@DestinationVariable String file, @Payload Foo foo) {
return "received: ${file} ${foo}"
}
// javascript
client.send("/app/hello/FILE", {}, JSON.stringify({
'name': "foo",
'desc': "a foo"
}));
. Не связан с StackOverflow