yamux
Yet another stream multiplexer. Requires node v0.10.x
Why
An implementation that can handle partial packets.
Basic concept
Client side
- Create a multiplex stream and pipe it into a common channel.
- Create virtual streams off the multiplex stream and use them to interleave data over the common channel
var Multiplex = ;var plexer = ;plexer; var virtualStream1 = plexer;var virtualStream2 = plexer;virtualStream1;virtualStream2;
Server side
- Create a multiplex stream and register an "onStream" handler with it.
- The onStream handler will get triggered when a new virtual stream is available.
- Pipe the common channel into the multiplex stream.
var Multiplex = ;var plexer = { virtualStream;}; commonXXXChannel;
Now, go Enjoy your lunch.
Example
// on the client sidevar net = ;var fs = ;var Multiplex = ; var plexer = ;var client = net; plexer; // pipe three files over the tcp connectionvar file1 = fs;var file2 = fs;var file3 = fs; file1;file2;file3; //////////////////// on the server sidevar net = ;var fs = ;var Multiplex = ;var fileIndex = 1; var plexer = { var file = fs; stream;}; var server = net; server;
License
MIT