cdfe7c2a47
Separated out the metadata about the agents and clients from the agentConnection and clientConnection objects. Now, the state does not need to be copied anymore when sending notifications.
...
The matchmaker uses copy on write every time a new agent or client connects or disconnects.
2024-08-15 22:08:24 +02:00
56ad9fbf03
concurrency for the expiry time
2024-08-15 21:25:30 +02:00
fd18a63360
now using maps of Guid to Agent/Client in the state, working towards the definitive solution.
...
Using LinkedMap that preserves insertion order for the implementation and also added unit tests for that.
2024-08-15 21:04:31 +02:00
98f6b414de
introdcution of typesafe ids.
2024-08-15 18:32:59 +02:00
fd064f249f
using unbuffered channels everywhere now. Only change required was to initialize prometeus and the websessions before the matchmaker. This is because at startup the matchmaker wants to write a notification when it starts up but then prometheus and the websessions would not be there to read them.
...
Alternative solution would be to run all initialization code in go routines to make it independent of initialization order but having a defined initialization order is much cleaner.
2024-08-13 21:33:29 +02:00
00a9a91788
added a utility function for logging request data.
2024-08-13 11:32:51 +02:00
bac7a9a6f1
Much imporoved websocket connection closure will now detect closing of
...
websockets immediately.
2024-08-13 10:57:05 +02:00
df9409fc75
now a single websocket is opened from the webui to converge.
...
The browser sends a hello message anytime the user switches to the
sessions page, upon which the server sends the current state back.
THis also improves the timeout handling of broken connecions.
2024-08-12 23:44:07 +02:00
dfdea81c20
renamed converge package to matchmaker.
2024-08-12 21:53:26 +02:00