The TCP proxy use case, which has been my primary motivation for WebSocket since day one, points to another limitation of SSE. SSE cannot handle binary data without encoding the data into text. WebSocket can.
I'm surprised the author didn't jump on this sentence:
"With any diagnostic data sent to Apple, customers must actively opt-in to share this information..."
As I understand it, Carrier IQ is about sending data to carriers. Apple only denied that data was silently sent to Apple. That's completely different than saying no data has been transmitted at all.
Last thing first: TCP requires a listening server. WebSocket requires a listening server. There is not inherently more infrastructure required.
The handshake and HTTP upgrade are there for a reason. Connecting out from web applications with straight TCP breaks the web security model. After the handshake, you can treat WebSocket binary frames as if they were a TCP byte stream. Speak any protocol you want to.
Anything you can do with TCP you can do with WebSocket. The only exception is that you cannot connect to a listening server that does not expect the WebSocket handshake. That is intentional! In fact, that is the reason for the WebSocket handshake.
What use cases for TCP do you envision where WebSocket won't be sufficient? It is quite possible to speak standard protocols over WebSocket that are typically spoken over TCP.
That's probably because the DOM's window.location.protocol returns "http:" for URLs with http schemes. That is reflected in the diagram included in the article where protocol extends to cover the colon in the DOM row. Overall, it's a pretty unfortunate mish mash of terminology.
Those are searches for the string MSFT. The article uses the share price data that the author uploaded. See how the chart is labeled "User uploaded activity for MSFT and US Web Search activity for google interview questions."
And x years down the line we'll see "so you think you own your domain name?" Actually, we've already seen articles like that. It's just more difficult (but not impossible) to lose your domain name for trademark reasons.
You can, however, open a WebSocket. You won't be able to connect directly to an SSH server listening with TCP, but you can connect to a server speaking SSH over the WebSocket Protocol. Of course, you can do that today with JavaScript. Ten year old network protocols do not require native code for performance.
Your current license key is usually for an OEM version and not a "full retail copy." I understand this as meaning you will have to purchase Windows 7 again if it came pre-installed on your PC.
There are plenty of JavaScript compilers that each have their own incompatible module systems. Adding another will only exacerbate what is already a major problem. JavaScript needs modules in the language to prevent fragmentation into what are effectively different source languages.
I think that is due to OpenAMQ and not AMQP the protocol. sudo apt-get install rabbitmq-server will get you a working AMQP server on Debian or Ubuntu in one step. Building from source is fairly easy, as well: http://www.rabbitmq.com/build-server.html