→ mmis1000: 指定要重試幾次/間隔多久後才觸發on error 04/11 19:52
→ mmis1000: 但 firefox 貌似不是很遵守這個行為 04/11 19:52
https://www.w3.org/TR/2011/WD-eventsource-20110208/
我再查了一下 w3c 的規格(上面網址),retry 是指:
當連線中斷後(包含完成傳輸或預期外的斷線),多少 ms 後會自動重新連線
若使用 .close() 關閉,則不會再嘗試重新連線
但有注意到這兩段:
https://gist.github.com/anonymous/d6edac5b9badd33b471b6611bf4dcfdd
這樣綜合起來,基本上就是只要結束連線(正常或意外),瀏覽器必須要
在指定時間後重新連線(除非有呼叫 .close() )。
但是要是中間發生錯誤或問題,那麼必須要觸發 error 事件
這樣看起來似乎 Firefox 實作的比較符合規範,但 Chrome 在網路
斷線的時候卻沒有觸發 error ?
剛剛再測試,發現只要斷的時間夠長 Chrome 在網路重新回來後就會觸發 error
並且自動重新開始連線
而 Firefox 則是網路一斷線,馬上就會跳 error,但過了一兩次重連沒連上
就不會再繼續連線(這似乎不符合規範)
只要自己會重新連線基本上就沒問題了XD
※ 編輯: darkk6 (223.138.231.175), 04/12/2017 10:58:17