Werk met Events
Events
Events allow simpletons to communicate transient messages to each other. The pool acts as a global event channel and dispatcher, connecting event-handling simpletons to event-generating simpletons. An event-handling simpleton expresses interest in a given event by subscribing to the pool with an appropriate event constraint. Event constraints are the programmatic equivalent of a semi-permeable membrane, allowing desired events to trickle down to a simpleton and denying access to all other events. Following the running example of a game clock tick, any simpleton that wishes to be synchronized with the game clock tick simpleton would subscribe to the pool with an event constraint that declares, "I am interested in any and all game tick events that pass through the pool."
Events encapsulate information by holding references to relevant data and through their specific subtype (some events are merely marker types without any additional fields).
Je hebt hierin dan waarschijnlijk drie partijen, Client A, Client B, Server. (Eventuele andere partijen zouden bijvoorbeeld een GameLogger of Lurker kunnen zijn)
Server verstuurt TickEvents naar de pool. Bij het ontvangen van een TickEvent zullen Client A en Client B de klok op de goeie tijd zetten (Let op, in het event staat dus de goeie tijd, mocht er dan een keer een event niet doorkomen of een Lurker komt later binnen, zal deze dus de goede tijd blijven/gaan weergeven)
Clients versturen bijvoorbeeld ChatEvents of TurnEvents, welke door de Server/Clients weer afgevangen en verwerkt kunnen worden.
Andere Events die je nog zou kunnen gebruiken: GameOverEvent, GameStartedEvent.