representation of a MatsSocketSession.
Note: The difference between "active" and "live" is that the "active" are dumb "data transfer objects" (DTOs)
which will serialize nicely with both Mats and MatsSocket field-based serialization mechanisms, while the "live"
are an interface to the actual live sessions in the MatsSocketServer, and as such has more information - but
cannot be (easily) serialized, and not passed as in- or out objects on Mats endpoints.
NOTE: The underlying instance is live in that it is just an interface over the live representation which the
MatsSocketServer is using to hold the MatsSocketSession.
As such, most methods can return different values
between each time you invoke them - and there is no synchronization between the methods, so you could read ACTIVE
, but when you read
, it could return Optional.empty() -
because the user concurrently closed the session (and if reading getState() again, it would now return CLOSED).