Получение Spring SimpMessagingTemplate для работы с веб-сокетом - PullRequest
0 голосов
/ 25 июня 2018

Я пытался заставить simpMessagingTemplate отправлять в websocket весной, но безрезультатно.Из того, что я вижу в связанных сообщениях stackoverflow и других руководствах, я предоставил необходимую конфигурацию и отображение путей.

Мой код показан ниже:

RestController (который я использую для вызоваотправка сообщения на веб-сокет):

@RestController
public class RestControllers {

    @Autowired
    private SimpMessagingTemplate template;

    @RequestMapping("/test")
    public String doTest() {

        Message m = new Message();
        m.setFrom("foo");
        m.setText("bar");
        template.convertAndSend("/app/chat/test-topic", m);

        return m.toString();

    }

}

Контроллер:

@Controller
public class ChatController 
{
    @MessageMapping("/chat/{topic}")
    @SendTo("/topic/messages")
    public OutputMessage send(@DestinationVariable("topic") String topic,
                  Message message) throws Exception


    {
        System.out.println("THE MESSAGE WAS RECEIVED:" +  message.toString());
    return new OutputMessage(message.getFrom(), message.getText(), topic);
    }
}

Конфигурация:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer
{
    @Override
    public void configureMessageBroker(MessageBrokerRegistry config)
    {
        config.enableSimpleBroker("/topic");
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) //?? alternative only?
    {
        registry.addEndpoint("/chat").setAllowedOrigins("*").withSockJS();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...