Hacker News new | ask | show | jobs
by vanous 3805 days ago
Thanks for the links. Any experiences with practical deployment, the compatibility chart [1] shows minimal support for mobile browsers and no support for IE? I have several command line tools that i expose via internal web pages and ended up also using setInterval based polling, rather then server pushed messaging.

[1] https://developer.mozilla.org/en-US/docs/Web/API/EventSource...

1 comments

For supporting legacy browsers you need to fall back to polling unfortunately.

A better option than repeated requests every X seconds (or X times per second) is long polling (see https://en.wikipedia.org/wiki/Push_technology for brief notes and your preferred search engine for many examples). You can only do this if you control the back-end (so can dictate its API) or the API you are using explicitly supports long polling, of course.

There are a number of libraries out there that try to wrap the different methods into one so you don't have to worry about compatibility, using the more efficient websockets where possible, falling back to long-poll where not, and sometimes other methods in between (integrating a little bit of flash for instance). http://socket.io/ is probably the best know of these.

Server-sent-events are an often overlooked alternative to polling and websockets. They work on all browsers and I'm having good luck using them.
I thought that got dropped from "HTML5" and was considered deprecated?

It was never implemented directly in IE or Edge (http://caniuse.com/#feat=eventsource), so when you say "work in all browsers" do you discount IE or can you recommend a good well-supported polyfill?

No one cares about legacy browsers except you and your grandma ;p
He specifically mentioned compatibility charts, which implies he isn't just looking at supporting the latest and greatest!

In my personal projects I don't care about legacy browsers (to users that far out of date I say "please go be a pain in the side for someone else"), but professionally I'll have to support at least as far back as IE8 for a while yet and I suspect a great many people are in the same position.