A drop-in replacement for Backbones Collection's Sync method that uses socket.io and socket.io-streaming to stream data to the collection from a fetch request.
Performing a fetch will return a jQuery promise that reports progress notifications as each new model is streamed from the server.
If you pass in the option
realtime: true to the fetch method, the models will be added to the collection as they are streamed in from the server, otherwise it will wait until streaming has ended before adding the models to the collection.
By default all new models will be merged into the collection, but that can be overridden by passing
merge: false to the fetch method
If successful, the jQuery promise will return an array of objects that was returned from the server, unless the
realtime option was set, in which case it will just return true
To run the tests navigate to project directory and type:
grunt test or
To run browser tests, run command
grunt testServer and that will start a local server. Go to
localhost:8000 and the mocha test page will pop up showing the test results.
While this is certainly not ideal for browser tests, websocket support in headless browsers is greatly lacking currently.
There are two versions in the browser/dist folder.
To compile the browser files yourself (instead of using the ones in dist), run
npm run-script compile or
A very basic example of the server side can be found in the test/testServer.js file. A more real world use case would be piping a Mongoosejs QueryStream to the socket.io stream.