2015-02-17 119 views
0

我寫了一個使用SSE加載新消息的聊天。服務器站點事件(SSE)連接終止與火狐

它在Chrome,Safari和Opera上正常工作,而Firefox在幾次重試後關閉連接。 我使用重試:2000(2s)。有時候firefox最多隻能執行10個事件,有時候只能執行1個或2個。從我的serverstats中知道,我的用戶中有80%以上使用的是firefox,所以我需要使用firefox。

我使用的是最新版本的firefox,並且在我使用的每個EventListener('message','open','close')後添加了一個console.log()

有沒有人有想法該怎麼辦?
非常感謝

+0

你是什麼意思的「經過幾次重試」?你的後端服務器不穩定,並且下降很多?從時間和事件角度來看,這種連接是多麼頻繁地丟失並且需要重試?你能夠顯示最小的後端代碼和JS前端代碼,這將重現問題嗎? (也是確切的firefox版本,你的操作系統,如果涉及任何代理服務器,可能會有所幫助。) – 2015-02-18 18:08:57

回答

0

想我解決了這個問題:

首先我運行結束在一個函數的EventSource:

function chat_read() { 
 
    if(typeof(EventSource) !== "undefined") { 
 
    var source; 
 
    source = new EventSource('?link=chat_stream'); \t 
 
    }

現在我試圖初始化變量「源'全球(在功能之外),它現在正在工作。

var source; 
 
function chat_read() { 
 
    if(typeof(EventSource) !== "undefined") { 
 
    source = new EventSource('?link=chat_stream'); \t 
 
    }

除了這個我寫了尋找上證所「開放式」的事件仍然firering的功能,如果它不是,它會重新啓動上證所。