Outlining a Solution Stack
It all depends on what you are actually trying to do and what your requirements are.
There is no real "right" language for things like these, it's mostly determined by the Frameworks you'll be using on those language (since all are general-purpose programming languages) and your personal preference/experience.
I can't comment too much on Python as I never tried it really, but from what I heard/saw it can be used for all things Ruby is also used, although the Community around Python is a bit smaller with Python being used a lot more in the Scientific community (that may be good if your app may be doing any crayz calculations).
That leads us to Ruby. Ruby and the Ruby on Rails framework is mostly used to write Web-Applications and Services. 
Ruby is a very elegant language to program in and the tools are very mature and easy to work with. 
Rails is a framework on Ruby that makes Web-Development very simple in providing you with a very good set of tools especially suited to write data-driven web-apps.
Very flexible and a joy to work with.
There are however some drawbacks to Ruby at the moment, mostly related to poor threading.
Node.JS is a new language that is focused on paralellism and supports all things Ruby and Python can do, although it's documentation is lacking compared to what Ruby will give you. It's also not the most beginner-friendly choice as JavaScript with all it's quirks and the callback-oriented async model is not of the simplest thing around.
That said, Node is very bare metal and makes it very very easy to write arbitrary TCP/UDP Servers that don't necessary work over HTTP. Custom streaming protocols or any custom protocol in fact are almost trivially done in Node.. (I don't advise you do that, but maybe that's important to your task).
To be fair there are frameworks that facilitate writing of Web-Apps for node, but the coices are a) not as mature as Rails or Django, and b) you have to pick your framework choices. 
This means: Where Rails does come with a lot of defaults that guide you, (Rails for example has a default Database stack it's optimized around), Node with Frameworks like Express only provide you with a bare-bones HTTP server where you have to bring in the Database of your choice etc... 
In closing: All languages and frameworks you asked about are mostly used for writing Web-Applications. They all can however be used to write a client that consumes the service too - it mostly comes down to general preference.
please excuse my ignorance as I'm an Aerospace Engineer going headfirst into the software world.
I'm building a web solution that allows small computers (think beagleboard) to connect to a server that sends and receives data to these clients. The connection will be over many types including GPRS/3G/4G.
The user will interact with clients in real time through webpages served by this central server. The solution must scale well.
I've been using python for the client side and some simple ruby code for the servers with Heroku. I have also tried a bit of NodeJS and Ruby on Rails. With so many options i'm struggling to see the forest from the trees and wondering where these languages will fit into my stack.
Your help is appreciated; I'm happy to give more details.