
TODO:

- add other examples.
- store error message in node and log it on exit if not empty.
- store error message in server and log it on exit if not empty.
- add more configuration options.
- add more code documentation.
- add support for multiple servers.
- add web interface ?




DONE:
# finish server
# add config option for quit_counter.
# write test cases for node id.
# write test cases for configuration.
# write test cases for messages.
# write test cases for node.
# write test cases for server.
# use threading for client (node): asyncio.to_thread()
# Use threading in server to handle client methods (get new data, handle result).
  # Or asyncio.to_thread() ? https://superfastpython.com/asyncio-to_thread/
# add mandel example.
# use enums for message types.
# Write a good summary for the README.



