In modern browsers, what is the need for socket.io? - socket.io

I'm building a web application that is aimed at developers. I assumed that most web developers would be using a modern browser, and thus would have support for WebSockets. Is there any need, then, for socket.io? Or maybe I'm just being naive about this?

WebSockets support is very limited. The current release version of Internet Explorer (IE 9) doesn't even support the current WebSockets specification. You need IE 10+, Firefox 11+, Chrome 16+, or a nightly build of Safari.
http://en.wikipedia.org/wiki/WebSocket#Browser_support
So it's a pretty big assumption that most web developers are using a browser that supports it.
Also, think about enterprise web developers. Often their corporate users are all running some older version of a browser (almost always IE) that the company has standardized on (usually to support some older Line of Business app).
In fact, 7% of all internet users and 25% of Chinese users are still using IE 6.
There will likely be plenty of need for socket.io for the foreseeable future.

Many proxy servers and firewalls break websockets. Use http://socket.io-test.com to test.

Related

Desktop application using Firefox WebExtensions

I am working on a XUL desktop application, where I use the browser tag and load a URL in that tag within the desktop application.
However, some websites display as old format and according to Mozilla, XUL is deprecated and will not be useable at the end of 2017. I want to build the application with the latest technology: WebExtensions.
I have searched many examples on the usage of WebExtensions, but all are working within the browser. Can I make a standalone desktop application just like XUL, but using WebExtensions?
If yes, then please give me some hints on how to get started.
If no, is any alternative for the same requirement available?
Webextensions are fairly limited in their scope. Even if there was an application runtime utilising them, you probably wouldn't get much use out of them due to the restrictive isolation from the host system.
Strictly speaking not webextensions, albeit very similar:
The Electron framework/runtime*
Someone at Mozilla is also working on an alternative dubbed "Positron"** though that software's future is uncertain and there is a chance he might abandon it for an entirely new, highly simplified project (at least that's what I gathered from my conversation with him on Github).
*http://electron.atom.io/
**https://github.com/mozilla/positron

Websockets issue

Here is the result from one of my desktops:
http://websocketstest.com/result/239749
Websockets are fine in Firefox, but no other connection can be made.
For some reason this website works perfectly:
http://demo.kaazing.com/forex/
In the firebug I can see that somehow kaazing streams the data and rotates the request every 500kbs.
Any ideas?
asdad
It looks like you're using Firefox 10.0.2, released in Feb 2002 - well over a year ago. As far as WebSocket support is concerned, this feels like an eternity...
One of the biggest challenges with WebSocket as a technology is that not everybody is on the latest and greatest browser version. Users of old desktop browsers (especially IE), Android (with default browser), and older iOS will all face this challenge.
The reason why Kaazing works is that it uses clever WebSocket emulation techniques: when native WebSocket support is not available in the browser, the connectivity falls back to alternative techniques that are very close in performance to a native WebSocket connection. If interested, you can learn more about the Kaazing emulation technology that works in all the older browsers, including IE6.

Dart2JS and IE8

So I'm researching new frameworks and am really impressed with what I've read about Dart. Of course, I have to support at least IE8, and Dart doesn't seem to provide that. I was wondering why exactly that is. Is it just because it compiles to ES5? Would some simple polyfills fix that?
(Thank's for checking out Dart, we're glad you like what you see!)
Dart is from the future, today. Look at any trends, and one thing is clear: mobile, mobile, mobile. Oh, and also modern browsers that auto-update.
Spending any time working on legacy browsers, with their outdated JavaScript engines and feeble support for HTML5 (if any), means we're not spending time working on a comprehensive platform for developers to build apps that wow users. We believe that user expectations are high, and the only way to meet and exceed them is to build a platform that runs on modern JavaScript engines and can exploit the wide array of HTML5 features. You just can't build a fantastic experience that shows off the power of the modern web and support legacy browsers.
For a quick fix, encourage your users who are stuck on legacy browsers to install Chrome Frame. Or, better yet, encourage them to upgrade their browsers.
As to what prevents Dart from being used in legacy browsers:
Lack of testing. Our buildbots don't test against legacy browsers.
Lack of ES5 JavaScript engines.
Manpower. Our resources are better used building for modern web browsers.
I'm not sure if we explored if an ES5 shim would work. We'd love to hear from the community if they get this to work, though.

Will IE9 now be supporting WebSocket?

The question's pretty straightforward and the old topic is here. I'm hoping to get up-to-date answers since IE9's gonna be released this March 14, 2011.
In addition, I would also like to ask when will Firefox and Opera be supporting WebSockets?
I've been following both the development of IE9 and I also participate in the HyBi WG (WebSockets protocol). Microsoft has been keeping the demo implementation of WebSockets up to date with the latest revisions of the protocol, however, I suspect that the initial release of IE9 will not have built-in WebSockets support. It will probably not be until IE10 unless they start to see it as a big competitive disadvantage in which case we will likely see it added in a IE9 update before IE10.
Firefox will likely support WebSockets in an update to FF4 or with FF5 (but the plan is that 5 will come out this year). Also, you can turn on the current implementation in FF4 using a about:config option.
I have no idea about Opera. They are interesting in the protocol but they've been pretty silent on the HyBi list.
Also, if you need WebSockets right now you can always use the Flash shim/fallback web-socket-js.
Update:
I forgot, Opera 11.00 does have WebSockets support built-in but disabled. Go to opera:config and search for WebSocket.
So in summary, just about every modern browser has WebSockets support in some way either built-in and enabled (Chrome, Safari, iOS), built-in but disabled (FF4 and Opera), as a downloadable add-on (IE9), or using the web-socket-js Flash emulator (everything except iOS).
Nope, The RTW version of IE9 does NOT support a websocket type... :(
UPDATE: The IE team is developing websockets for their browser, but it's not included in the initial release because the standard is in a fluid state. Although the implementation is stable, the standard isn't. If you want to test it out in IE9, you can by downloading it here:
http://html5labs.interoperabilitybridges.com/
You can hear more about it by listening to this DotNetRocks podcast:
http://www.dotnetrocks.com/default.aspx?showNum=648
Best regards.
IE9 does support WebSockets but not as a "built-in" functionality. You have to download it as a plugin from http://html5labs.interoperabilitybridges.com
The reason given by microsoft for not including in default setup is - the standard is unstable and keeps changing and in default setup only stable HTML5 standards shall be included.
So in a way IE10 as of now will also not include.
The HTML5Labs site will provide "experimental" support to unstable standards.

which automated web testing framework is kept most up-to-date?

Related: Automated Web UI Testing
I'm evaluating ui testing frameworks. It seems like some of them aren't updated very often (esp. Selenium, the core hasn't been updated since 6/2009).
My concern here is that I'll adopt/learn a testing framework that isn't going to be compatible with HTML5. I'm working in C# land, so I'd prefer a framework that will output tests in C# (Nunit).
Which UI testing framework is most likely to be kept up-to-date as HTML5 features become more commonplace?
Candidates:
Selenium
Molybdenum
Watin
Sahi
??
I'd recommend using WebDriver/Selenium. This has wide adoption at many major companies (including Google for example) so isn't likely to go away any time soon. It also has wide support from browser vendors.
Otherwise Watir is also popular.
You may want to look at RIATest for cross-platform cross-browser testing of HTML5 applications.
Historically major updates of RIATest were released every 12-18 months, with minor updates coming out every few months.
(Disclaimer: I am a RIATest team member).

Resources