I first added some minimal support for LAN messaging to assist in autodiscovery of other workstations with zero configuration back in 2002. It worked fairly well but only on platforms supporting the Microsoft SMB network standard. It was not what I would call a really robust, hardcore discovery and messaging system. It worked for a long time in registering URLs for other servers which I could then load resources from using JSONP. It was always sort of a hack pending a better mechanism. The slightest security on a network can block this method.
I think I did an experiment with a UDP broadcast back in 2006 which appeared to work but seemed way too lightweight for what was needed.
In 2010 I worked for a couple months integrating UPNP into Mongoose code. It worked very irregularly and was subject to all kinds of network security blocking it. I tried again to do some hacking at it in 2012 but the general security patches added to UPNP implementations by Microsoft tended to make it extremely unreliable. I decided for this reason I would not touch the code any longer and just work on the server stuff, particularly the client end. I thought if I ruminated for a while I'd come up with something better. A "little while" ended up being 4 years before I even looked at it again. It was still crap when I turned it back on in 2014. Just not the right approach.
I started to experiment with this a few months back :
I am going ahead with this 0MQ code for my first Github release. All I know about it is that in the ten hours I have devoted to integrating it I have discovered it to be the best of all at real-time asynchronous discovery in cross platform code. I intend to improve a lot on this, particularly in the area of broadcast alerts for emergencies, global messaging, cron jobs and general alert handling. At present it just works and that is better than the other alternatives I have tried in the past.
|Very early shot of "VAULT-OS" from around 2010 or thereabouts.|