Update baseURI checking/pull and fallback, fixes #17661

This commit fixes an issue in IE10 and IE11 (which do support WebSockets). The .baseURI is not valid in those browsers, so you have to have a more robust fallback and check. The fix below was authored and tested against an actual websocket supporting server and has been verified to work. I also spent some time and did AMD cleanup on the module, getting rid of dojox. dojo. and most deprecated API usage. It now no longer forcibly expects a dojox. namespace and such.
Fair enough.  I'll remove the block.

On Tue, Nov 4, 2014 at 11:55 AM, Ben Hockey <notifications@github.com>
wrote:

> In socket.js:
>
> >
> >  Socket.WebSocket = function(args, fallback){
> >  	// summary:
> >  	//		A wrapper for WebSocket, than handles standard args and relative URLs
> > -	var ws = new WebSocket(new dojo._Url(document.baseURI.replace(/^http/i,'ws'), args.url));
> > +	var baseURI = document.baseURI || window.location.href;
> > +	if(!baseURI){
>
> at some point you have to draw a line though. defensive programming taken
> to the extreme in this case, would say that we can't rely on window or
> document to even exist so we first should have tested for their existence
> but that would smell more of paranoia rather than robust programming.
>
> i would think that if we don't have a baseURI by the time we get here
> then trying to make it work somehow in this unknown environment is probably
> going to cause a failure later. wouldn't it be better to fail early than to
> try and keep going with uncertainty?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/dojo/dojox/pull/148/files#r19816672>.
>