1

Web サイトに通知を送信しようとしています。EventSource が開いたままになりません。無期限に閉じたり開いたりします。秒も開いていません。

Javascript

this.subscribe = function(eid, cid) {
        if (!!window.EventSource) {
            //no authentication. Be carreful
            source = new EventSource(config.apiUrl + "v1/e/" + eid + "/c/" + cid + "/sse");
            source.onerror = error;
            source.addEventListener('message', function(e) {
                console.log(e.data);
            }, false);

            source.addEventListener('open', function(e) {
                // Connection was opened.
                console.log(e.data);
            }, false);

            source.addEventListener('error', function(e) {
                if (e.readyState == EventSource.CLOSED) {
                    // Connection was closed.
                }
            }, false);
        } else {
            // Result to xhr polling :(
            console.log("No notifications available");
        }
    }

Java部分

SseEmitter subscribeUpdates() {
    SseEmitter sseEmitter = new SseEmitter();
    synchronized (this.sseEmitters) {
        this.sseEmitters.add(sseEmitter);
        sseEmitter.onCompletion(() -> {
            synchronized (this.sseEmitters) {
                this.sseEmitters.remove(sseEmitter);
            }
        });
    }
    return sseEmitter;
}

何か案が?

前もって感謝します。


何の手がかりもなく、私はなんとか別のことをすることができました。SSE、Websocket、その他のリアルタイムのものを提供する NodeJS サーバーがあります。私のSpringアプリは、クライアントに送信するnodeJSにイベントを送信するだけです。

4

2 に答える 2