Main difference is the handling of parser.Decoder's 'decoded' event
and removing most of the logic that interprets the packet data from
manager, since parser handles it now.
This is a squash of 6 small commits. Below is a summary of each. The gist
is that manager.js encoding and decoding portions were changed to work
with the new socket.io-protocol; this includes handling of encoding
a list of packets, and handling sequences of binary packets.
Commit 1 was the initial rewrite.
Commit 2 got all the tests passing via bug fixes.
Commit 3 updated the has-binary-data dependency and the build.
Commit 4 added nice comments.
Commits 5 and 6 updated build and engine.io dependencies respectively.
Added changes to reflect socket.io-parser's async encoding, and use
of has-binarydata to check the event type of an event.
Next added browser tests for sending and receiving of binary data via
arraybuffers.
Then added blob tests and blob recognition.
To make blobs fully work (and Files as well), had to add packet buffering
to client so that slow-encoding blobs are still sent before other events.
I fixed a stupid bug I had added where I used the indexof module (for old
browsers) on a string somewhere instead of an array). This was causing
old IE to receive all events twice.
Old iphone tests were still failing so I updated tests to reflect that
some browsers can receive a blob but not construct them.
Finally, reduced build size by adding the "browser" field to package.json
and making browserify less confused.
This functionality contains checking for flash availablity.
The new Flash check will also check on Flash version number as web-socket-js requires flash 10.0+