We use it to send data from the client to the server, and have the server send back a response • Useful for handling data sent from the web app, that needs to be validated or verified as having been received
in the server/rpc/demo.js file. • This convention allows you to structure the RPC API that you want in line with your files, so they are easy to create, find and modify. • It is one of the “opinions” of the framework
does the publish/subscribe actions, and the client listens for events • Commonly used for public and private communications (.e.g chat rooms, activity feeds, announcements, events in games)
within the Node.js process with EventEmitter (simple to start with, but means you lose channel subscriptions when the process is restarted • For that reason, SocketStream has a Pub/Sub plugin that uses Redis to persist the channels and subscriptions • There is even a 3rd-party Pub/Sub plugin using MongoDB to persist the data
for authenticated channels, implement an authentication method via RPC, and create a subscription with a channel name unique for that user, if the authentication succeeds • Always use Redis for Pub/Sub persistence when in staging/production modes • It’s a good idea to design the app so that channel subscriptions are kept at a minimum.
for the WebSocket transport • Load an Express app with SocketStream, and share Cookie information • Create your own WebSocket responder protocols (for ultra-efficient communication - e.g. game data) • Use Web Workers for doing intensive processing in non-blocking threads in the browser
to train tunnels and general lack of Internet connectivity) • There are some neat 3rd-party plugins for integrating with Backbone and Angular applications • We also have a tool for testing your web apps with Cucumber and Selenium, called SS-cucumber
• https://github.com/gotwarlost/istanbul • Let’s you check what code is covered by tests • Gives you colourful reports that highlight the weak areas of your codebase
have been chipping away at writing tests for the framework for some time • The framework’s code coverage is now at 76% • We still have some way to go, but we’re getting there
with session affinity enabled to make sure that long-polling handshakes go to the right servers • We want to explore an approach that doesn’t depend on session affinity
functionality into modules • This has the benefit of making the codebase easier to look through, test, and refactor • App generation was the first part of the code to break out into a module
for SEO • React has become a very popular tool • We’re looking to improve support for building hybrid apps (server-side rendering + client-side rendering) - which currently exists with React and Flux
of the project, AOL allowed Owen to work on SocketStream full time • But it meant he longer ran the Ad Ops team, who were merged into another team • The change along with company re-orgs ended up stifling momentum on the project
a consultant, and managed to sponsor work on SocketStream through Anephenix (my company) • But ultimately, I am 1 person, and there is only so much I can support by myself • We’re looking for a sponsor
Health startup, who want me to work for them to extend Dashku for their products • I get a free Ninja Block from the guys at Ninja Blocks, who ask me to work for them • Dashku gets ripped off by tazaboard.com • Another IoT company asks to use it for their product