首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹簧与EventSource

弹簧与EventSource
EN

Stack Overflow用户
提问于 2016-02-29 20:50:26
回答 2查看 795关注 0票数 1

我正试图向我的网站发送通知。我的EventSource不会一直打开。它会无限期地关闭和打开。它几秒钟都不会打开。

Javascript

代码语言: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部件

代码语言:javascript
复制
SseEmitter subscribeUpdates() {
    SseEmitter sseEmitter = new SseEmitter();
    synchronized (this.sseEmitters) {
        this.sseEmitters.add(sseEmitter);
        sseEmitter.onCompletion(() -> {
            synchronized (this.sseEmitters) {
                this.sseEmitters.remove(sseEmitter);
            }
        });
    }
    return sseEmitter;
}

有什么想法吗?

提前谢谢。

没有任何线索,我设法做了不同的事情。我有一个NodeJS服务器,它提供诸如SSE、Websocket和其他RealTime之类的东西。我的Spring应用程序只是将事件发送到nodeJS,后者将其发送到客户端。

EN

回答 2

Stack Overflow用户

发布于 2017-07-30 18:23:47

使用所选的有效负载从JAVA发送一条消息,以指示不再有数据:

代码语言:javascript
复制
source.addEventListener('message', function(e) {
    if ('END-OF-STREAM' == e.data) {
        source.close(); // stop retry
    }
    console.log(e.data);
}, false);
票数 0
EN

Stack Overflow用户

发布于 2017-10-29 13:27:19

您需要像这样为SseEmitter定义一个超时:SseEmitter sseEmitter = new SseEmitter(300000L); // 5 min

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35709364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档