После входа в систему веб-сайты не могут найти текущего пользователя по session.getPrincipal()
(он возвращает null).Spring Boot WebSockets не удалось найти текущего пользователя (основного)
Вот код Java для WebSockets:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/queue", "/topic");
config.setApplicationDestinationPrefixes("/socket");
config.setUserDestinationPrefix("/user");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/app").withSockJS();
}
}
Похоже, весна загрузки ошибка - я использую 1.3.8 RELEASE
. После обновления страницы пользователь получает правильно зарегистрированного пользователя.
А вот передний конец (подписка)
ngstomp.subscribeTo('/user/queue/message')
.callback(function(response) {
console.log('Test');
})
.withBodyInJson()
.connect();
Я попытался это решение: https://www.javacodegeeks.com/2014/11/spring-boot-based-websocket-application-and-capturing-http-session-id.html
Но это не работает.
Пожалуйста, помогите!
кажется, прежде, войдите в аккаунт идентификатора сессии отличается после-входа в идентификатору сессии. – KimchiMan
Я использую аннотацию: '@ SendToUser' – KimchiMan
' @MessageMapping ("/ сообщение") @SendToUser общественности Строка loadMessage (@Payload Строка сообщения) { \t ответное сообщение; } ' – KimchiMan