LiveNode Server

The aim of this project is to create a LiveCode Server that interoperates efficiently with NodeJS.

Following the recent Pair Programming session with Ward we took a look again at the LiveNode and Block Server that we created in summer of 2015 for the Chaos Communication Camp.

It seems to work fine on mobile and desktop, and is highly customisable. We added:

- [x] Dynamic Routing to serve a mix of content - [x] Serving dynamic content (local or remote sources) - [x] Check IP address of clients to make routing decisions

# Proposed Development

My latest thinking on this is that the server should be customised to deliver local content over the LAN at Squatconf.

It would work like this: * Client connects and reveal IP Address and User Agent. * If it is a mobile client we sever them static HTML * Otherwise we suggest creating a unique Fedwiki site for each new IP Address found. * We use cookies to cater for IP Address changing with DHCP * We experiment with Zeroconf to automatically generate Dynamic Rosters. * We create a Fedwiki Form to gather a username for Subdomain Creation. * We create a new subdomain with customised pre-populated content for each new user * We create a way to include a dynamic roster that automatically adds users as they connect and sign in

# See also

Based on conversations with Richard Gaskin and Andrew Kluthe:

If you prefer light-weight server + the expressive power of LiveScript, you may build your own server using Node.js and Express.js together with the SimpleCGI "Middleware", which forwards CGI requests to LiveCode Server - rozek.mobi

Below Todd Geist shows a simple LiveCode HTTP Server modified to add a Router and Middleware. The architecture borrows from simple light servers like Ruby Sinatra or Node Express.

The following instructions from Mike Bonner describe how to get Livecode Server running on DigitalOcean:

Block Server or BlockServer is a term that I am using for an HTTP server which interacts with the Blockchain and / or decentralised protocols such as IPFS.