diff --git a/README.md b/README.md index 37d5683..07501d5 100644 --- a/README.md +++ b/README.md @@ -71,9 +71,10 @@ Solver flags := flags.Flags{Controller: &controller} solver := solver.Solver{Controller: &controller, Outp: &outp} ``` -### Manager & Client channel setup -#### Client - - -#### Manager +### Manager & Agent channel setup +Both the manager and the agent will have similar setups: +* `*websocket.Conn` is stored in _types.go_. +* Any go routine can write to the socket. +* All reads go to a `readProcessor()` which in turn parses the message, and in turn does the appropriate logic (read, calling go routine/functions) +This does however presents me with a problem. Since all communication is reactive, state-less, and all over the same connection; so tracking things is a bit hard. And this is something for maybe the next phase. So for now, reactive content only. This said, I need figure out how on earth I can prevent an agent from taking two jobs at the same time. I guess I will need to build in some agent state tracking for this.