Node programmers have already given rise to a number of fully featured web frameworks for use with the language, increasing Node's viability. However, Node still has a ways to go until it enjoys the same level of community support and plugin availability as more mature frameworks like Ruby on Rails. In the meantime, there are exciting new tools being added to the ecosystem that developers working in Node will want to check out and keep tabs on.
Node.js makes many web tasks very simple and efficient. In fact, it's possible to write a functioning (although very simple) web server in Node in about 6 lines of code. Unfortunately, Node does not natively support websockets. Fortunately, there are some good solutions specifically for adding this functionality to Node, and the use of Websockets extends Node to open up all kinds of new possibilities for connecting users and their browsers to one another directly for the purposes of chat, video chat, sharing files and collaborating on documents together.
Websockets platforms that support Node.js make this much easier to do by abstracting a lot of the plumbing and detailed work that goes into enabling such connections into simpler API calls. Making use of Node-friendly websocket platforms in your code can greatly increase your productivity, reduce the amount of time it takes you to go from concept to functioning web app, and generally make for more reusable and less lengthy code.
Some real-time platforms provide far more functionality that basic websocket connections, such as data stream processing, message ingestion, message processing and large scale message push. Combined with Node's ability to power high concurrency applications and perform tasks in a non-blocking manner, we're sure to begin seeing some amazing applications being built in Node over the next few years.
Platforms that support Node.js need to be fast and performant so as not to mitigate the native power of Node or pull back on its speed. Node's NPM (Node Package Manager) will also allow you to quickly install modules that will enable your node scripts to take full advantage of the functionality that websockets have to offer.
In thinking about the kind of applications that could be created with Node and websockets, we can envision web apps that allow many users to interact with one another simultaneously. Direct chat is one of the easiest things to implement using Node.js and websockets, and only scratches the surface of what's possible. When you combine Node with real-time data processing you can allow large groups of users to register and share their immediate responses with others.
Conferencing software could allow people listening to a presentation to vote in real-time for the most compelling idea, or to give even more granular feedback about a particular aspect or proposed feature for a given product. By the same token, the app could be aware of users activity and show aggregated reports of users' paths through the system as they navigate between pages and actions.
Still more possibility lies in the direct connection capabilities provided by websockets, which can allow co-workers to simultaneously mark-up a document together or draw notes back and forth on the same piece of content they are co-viewing in real-time. Such applications could make professionals who work from home or work remotely more effective than ever before.