There's a useful idiom among client/server models that deals with this sort of thing. It basically states that the server should be passive, and the client should notify the server of state changes. This is useful because it precludes the server from taking an active role in the maintenance of its clients, which prevents security and encapsulation problems.
It's good to remember that the server doesn't have to be completely passive (like an HTTP server), because it must still relay information between clients and provide for security issues arising from rogue clients.
So while the server would be keeping track of channel subscriptions for a particular mud, it would never resync this information if it wasn't at the client's request. Therefore if the client doesn't refresh their channels it's your problem, not mine =).
|