2014-03-30 112 views
0

無法將SSE事件傳遞到瀏覽器中的文件。SSE和NodeJS Express

該服務器代碼(快遞):

app.all('/callme', function(req, res){ 
    res.writeHead(200, { 
     'Connection': 'keep-alive', 
     'Content-Type': 'text/event-stream', 
     'Cache-Control': 'no-cache' 
    }); 

    setInterval(function(){ 
     console.log('writing'); 
     res.write((new Date()).toString() + '\n'); 
    }, 1000); 
}) 

此客戶端代碼:

var source = new EventSource('/events'); 
source.onmessage = function(e) { 
     document.body.innerHTML += e.data + '<br>'; 
}; 

我使用相同的服務器代碼在客戶端使用XHR和它的作品。服務器似乎正確發送數據,但在瀏覽器中沒有被解僱..

我已經閱讀JavaScript EventSource SSE not firing in browser似乎不適用於此,因爲我沒有運行反病毒會影響它。

+0

只是我使用的命名約定 –

回答

3

它看起來像你的事件的格式不正確

你想讓它格式化這樣

res.write("id: " + Date.now() + "\ndata: " + message + "\n\n"); 

此外,檢查出這個

node-easysseeasysse-client