フロントエンドにSTOMPとSockJSを使用するSpring WebSocketsを使用します。それは罰金を働かせますが、私は別の困難があります。すべてのメッセージは、すべてのクライアントに発行されます、Spring websockets:メッセージが公開されていません
@MessageMapping("/showAccountlist")
@SendTo("/topic/accounts")
public Account createPublishAccount(String name) throws Exception {
return new Account(name);
}
そして、これは正常に動作し、フロントエンドのコードを、次のとおりです。
これはバックエンドのコードです。
stompClient.send("/app/showAccountlist", {}, name);
しかし、私は
createPublishAccount("Carlos");
が公開されないメッセージのように思えるメソッド名で、私のJavaのバックエンドからバックエンドの私の方法を呼び出すとき。どんな解決策ですか?または、これは動作する方法ではなく、SockJS経由でトリガされた場合にのみ動作します。それは@SendToアノテーション付きメソッドを呼び出すことによって、メッセージを送信することは不可能だよう
@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) {
registry.addEndpoint("/showAccountlist").withSockJS();
}
}
は春でインスタンス化さcreatePublishAccountメソッドを持つクラスですか? –
@SendTo注釈付きメソッドを呼び出すことでメッセージを送信できないようです。 'SimpMessagingTemplate'を使って動作しますか? –
確かに。 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html#websocket-stomp-handle-send –