What is the difference between Forever-frame and server sent events? -
this question similar question:what difference between web sockets, long polling, server-sent events , forever frame?
however, question's answer doesn't mention difference between sse , forever-frame.
let me give brief explanation them.
regarding sse, system resembles comet, point different comet not breaking connection after data being sent. so, connection server client long-alive , client receives series of fragments of whole data.
on other hand, forever frame seems similar me. in forever frame, first client receives page including iframe tag, establishing long-lived connection inside hidden iframe. , client receives chunked datas server , manipulates dom functions on first document client has.
i assume difference forever-frame uses iframe tag in mechanism, sse doesn't , sse can realized more ways. right?
i'd not heard of forever-frame name before! (it covered in ch.7 of book, data push apps html5 sse, in "iframe" section).
long-polling: make request (using xmlhttprequest, i.e. ajax), keep open until data ready on server. socket closes. re-connect next bit of data.
xhr polling: make request (using xmlhttprequest2, i.e. ajax), listen in readystate==3 signals. back-end server has know keep connection open, , client has know listen readystate==3. (does not work in ie9 , earlier, because browser never delivers readystate==3 messages, goes straight readystate==4)
iframe: open hidden iframe back-end process. regularly go @ source code of iframe, , see if new there. (technically works on browsers, ie8 , ie9 ones in (2013) tests low enough latency updates useful.)
sse: html5 standard works xhr polling (firefox , chrome, @ least, implement directly on top of xmlhttprequest2), complex details hidden you. adds auto-reconnect if socket goes down, , few other high-level features that.
at end of chapter 7 of afore-mentioned book, show code techniques work in browser. order of preference is:
- sse if available
- else xhr if available
- else iframe if ie8 or ie9
- else longpoll
there 1 other difference: xhr , iframe techniques storing entire message history in memory. so, if intend keep socket open long time and/or send lot of large messages, may cause memory issue wouldn't happen sse.
executive summary: don't worry "forever-frame" unless have enough customers still using ie8/ie9 longpoll approach create noticeable additional load on infrastructure.
Comments
Post a Comment