サインイン後、WebSocketは現在のユーザをsession.getPrincipal()
(nullを返します)で見つけることができません。ここでスプリングブートWebSocketが現在のユーザ(プリンシパル)を見つけることができません
はWebSocketをのためのJavaコードです:
@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
をしかし、それは働いていません。
私を助けてください!
のセッションID後のサインインのセッションIDと異なるサインインが前に、それはそうです。 – KimchiMan
私は、アノテーションを使用しています: 'SendToUser' – KimchiMan
' @MessageMapping( "/メッセージ") @SendToUser パブリック文字列loadMessage(@Payload文字列のメッセージ){ \t戻りメッセージ@; } ' – KimchiMan