A rules-based real-time messaging system for groups of users, in which an
availability status is maintained in association with each user. Clients
are communicably coupled to a real-time messaging server, which maintains
indications of the online/offline presence of each user, as well as other
user attributes. Rules and a rules engine are maintained in the real-time
messaging server for controlling the delivery of messages to the users,
and for controlling how the availability of users is provided to other
users. Based on the specific rules stored on the real-time messaging
server, the rules engine determines the state of various relevant
conditions such as the availability of users of the system, and detects
the occurrence of various real-time events such as a user logging-on to
or logging-off from the system for controlling the delivery of various
types of messages and/or the performance of resulting actions.