In my implementation I'm using sockets for the communications because it gives me more freedom to implement my thread manager and a lot of control in my communication objects/commands.
My question is, how do I implement a mechanism to push the changes between clients?
1 - Create a socket in each client to receive the changes made by another user?
2 - Use RMI and use UnicastRemoteObject with a subscription mechanism instead of using sockets at all?
3 - Use a mechanism in which Client A requests a room that is already booked (Client B booked it) but in the interface it appears that it is still free. When Client A selects the option to book an error/warning message occurs and an update package comes from the response object.
I'm more inclined in using option 3. But still thinking in what should be the better solution.