Я настраиваю реле внешнего брокера (amazonMQ) для веб-сокета в моем приложении Spring Boot.
При запуске конфигурации, кажется, все в порядке, и реле подключено согласно журналу.
Я проверил с плохим URL, и я ясно получаю UnknownHostException, поэтому я думаю, что мои конфигурации хоста хороши.
Я проверил это с помощью локального ActiveMQ, и моя тестовая настройка работает отлично, поэтому нет проблем с потоком сообщений.
Я видел подключенных потребителей и созданную тему в консоли управления.
Вот мой код, основанный на Spring Documentation здесь !
Когда я пытаюсь подключиться к клиенту, я получаю сообщение о подключении, за которым следует отключение для того же сеанса.
Если это проблема с SSL, то я не нашел ссылки в Spring Documentation для настройки SSL.
private static final String HOST = "b-xxxxxxxxxxxxxxxxxx.mq.aws-region.amazonaws.com";
private static final int PORT = 61617;
private static final String USER = "username-here";
private static final String PASSCODE = "passcode-here";
private ReactorNettyTcpClient<byte[]> createTcpClient() {
return new ReactorNettyTcpClient(HOST, PORT, new StompReactorNettyCodec());
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableStompBrokerRelay()
.setRelayHost(HOST)
.setRelayPort(PORT)
.setSystemLogin(USER)
.setSystemPasscode(PASSCODE)
.setClientLogin(USER)
.setClientPasscode(PASSCODE)
.setTcpClient(createTcpClient());
registry.setApplicationDestinationPrefixes("/app")
.setPathMatcher(new AntPathMatcher("."));
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws")
.setAllowedOrigins("*").withSockJS();
}
@Override
public void configureClientInboundChannel(ChannelRegistration registration) {
AuthenticatedUser a = null;
registration.interceptors(new ChannelInterceptorAdapter() {
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
log.info(" accessor {}", accessor);
return message;
}
});
Журнал при запуске
Starting...
Connecting "system" session to
stomp://XXXXXXXXXXXXXXXXX.mq.XXXXXX.amazonaws.com:61617
Started.
Tomcat started on port(s): 8080 (http) with context path ''
Журнал, когда клиент пытается подключиться
accessor StompHeaderAccessor [headers={simpMessageType=CONNECT,
stompCommand=CONNECT, nativeHeaders={accept-version=[1.1,1.0], heart-beat=[10000,10000]},
simpSessionAttributes={}, simpHeartbeat=[J@7070e97e,
simpSessionId=52usza4t}]
accessor StompHeaderAccessor [headers={simpMessageType=DISCONNECT,
stompCommand=DISCONNECT, simpSessionAttributes={},
simpSessionId=52usza4t}]
Кто-нибудь сталкивался с чем-то подобным?
Заранее спасибо:)