Messaging and Connection-less Connections...
Currently, Reroot uses UDP. This is a boon and a curse. Here's why.
UDP is super simple to use, has pretty low latency, and doesn't concern itself with "Connections" in any way shape or form. If you send a message to a machine's UDP port, it is up to that machine to interpret that message or not. It's almost as if you put an envelope in the server's mailbox, which it may or may not check, depending on its mood for the day.
Problem is, using this type of protocol means that the new RerootService has NO WAY of knowing if the server is interpreting its control messages or not. This was initially a desired feature, as we wanted as much decoupling of the server and client as possible (public Wifi -- read rpi_802.1X -- has all sorts of connection issues, and tends to disconnect quite frequently). If the connection between the client and server is ever severed, Reroot should still be able to pick up the conversation where it left off without a reconnection process. YAY!
HOWEVER. This comes at a cost. Now, we no longer know if the Reroot Server has crashed ( which happens, btw GASP ) or if anything has happened to the connection between the processes. This can be inconvenient if you're in a session and the controller stops functioning without any sort of error message. In retrospect, a connection protocol would be... better.
IN CONCLUSION: I'm looking at TCP (using SSL) instead of UDP, and some sort of message acknowledgement.