Firefox中不寻常的EventSource错误

时间:2014-08-29 03:59:45

标签: javascript html5 firefox server-sent-events

与其他人不同,对于我来说,Eve​​ntSource会在Chrome和Firefox中被触发并正常运行。但是在Firefox中,只要我在浏览器中收到消息,就会收到一条错误消息。在Chrome中不会发生。

客户代码:

var source = new EventSource('***');
source.addEventListener('message', function(event) { 
    ...
}, false);
source.addEventListener('ping', function(e) {
    ...
}, false);

source.addEventListener('error', function(e) {
    ... // now this part gets executed in firefox, whenever i recieve a msg
}, false);

服务器,nodejs代码:

    ***.on('fin',function(message){
        delete ***;
        res.header('Content-Type', 'text/event-stream');
        res.write('data: '+JSON.stringify(message)+'\n\n');
        res.end();
    });
    ***.on('busError',function(){
        delete ***;
        res.send(500);
    });

1 个答案:

答案 0 :(得分:1)

自己找到了解决方案,

显然有一个重要的标题,转移编码 - 它应该被删除,或保持为身份,我想在Firefox中,默认情况下它被视为块,这导致了问题。

一旦我在服务器中添加了以下行,错误就会消失。

res.header('Transfer-Encoding', 'identity');

我的来源是另一个problem的答案。

documentation