This is a small NodeJS implementation on how to connect to a QWebChannel.

This example implements a small chat client using the command line. It connects
to the server provided by the other example 'examples/standalone/standalone'. Of
course the port the server listens on must be known.

How to run it:

- Install NodeJS (at least 0.10.x) (http://www.nodejs.org/download/)
- go to examples/nodejs and execute "npm install". This sets up the nodeJS
  environment in this folder
- ensure examples/standalone/standalone is running
- execute the example with "node chatclient.js"

