2

このリンクhttp://spring.io/guides/gs/messaging-stomp-websocket/をたどり、アプリを起動して実行しました。

私が望んでいたのは、それ以上のものでした。クライアントが何も送信しなくても、データをクライアントにプッシュバックできるようにしたかったのです。

そのため、以下のようなリスナーを使用して長時間実行されるタスクをセットアップしました

GreetingController は RunnableListener を実装し、RunnableListener にはメソッド public Greeting greeting(HelloMessage message); があります。

メソッドの実装は、スレッドを開始してからリスナー メソッドを呼び出すことです。

その場合、コンソールに出力が表示されますが、ブラウザーには何も表示されません。

実行中のタスクを開始し、サーバーがポーリングの代わりに Spring を使用してコンテンツをブラウザーにプッシュする方法を誰か教えてください (javascript の setTimeout など?)

よろしくティン

4

1 に答える 1

1

このRunnableListenerインターフェースは何ですか?このタスクをトリガーしているのは何ですか?定期的にスケジュールされていますか?

クライアントが特定のトピック (ここでは ) をサブスクライブすると、/topic/greetingsを使用していつでもそのトピックにメッセージを送信できますMessagingTemplate。たとえば、このタスクをスケジュールして、特定のトピックに関するメッセージを定期的に送信することができます。

@Service
public class GreetingService {

    private SimpMessagingTemplate template;

    @Autowired
    public GreetingService(SimpMessagingTemplate template) {
        this.template = template;
    }

    @Scheduled(fixedDelay=10000)
    public void greet() {
        this.template.convertAndSend("/topic/greetings", "Hello");
    }

}

詳細については、リファレンス ドキュメントを参照してください

于 2014-04-01T12:37:45.217 に答える