Microsoft Chat Server Development Guide

Multiple Server Event Distribution

There are a number of events that only occur on a single chat server, even if multiple servers are connected to the network. For example, when a user logs on, only the computer to which the client connects receives the notification of intent to connect (pre-update). All other servers in the network will receive only the connection confirmation (post-update). Therefore, if an extension needs to preemptively control client logon requests, it must be installed on all the chat servers on the network. However, if the extension is only interested in monitoring connections as they are made, the extension can be installed on a single server.

Likewise, the IChatChannelCallBack::OnChannelText event triggers the post-update event on all servers, but the pre-update event only occurs on the server generating the event. In order to modify offensive text before it is broadcast on the network, language monitors (like the Profanity Filter) must be installed on all servers.

Other events may or may not produce an external post-update notification, depending on the target of the protocol command. For example, the IChatUserCallBack::OnPrivateText event initiates the pre-update notification only on the server to which the sending user is connected. (The post-update notification occurs remotely if the receiver is connected to a remote server.) Any extension that needs to monitor these kinds of events must be installed on all servers.

The following table defines which events are available to an extension dependent on whether the event occurred on a local or remote chat server.

Event Pre-update Post-update Pre-update Post-update
  Local server Remote server
IChatChannelCallBack
OnAddAccess X X   X
OnAddMember X X   X
OnChangedMember X X   X
OnChannelPropertyChanged X X   X
OnChannelText X X   X
OnRemoveAccess   X   X
OnRemoveMember   X   X
IChatServerCallBack
OnAddAccess X X   X
OnCloseChannel   X   X
OnCloseUser   X   X
OnNewChannel X X   X
OnNewUser X X   X
OnRemoveAccess   X   X
IChatUserCallBack
OnAddAccess X X   X
OnAddChannel X X   X
OnAwayChanged X X   X
OnNickChanged X X   X
OnPrivateText X X    
OnProtocolMessageIn X X    
OnProtocolMessageOut X X    
OnRemoveAccess   X   X
OnRemoveChannel   X   X
OnUserPropertyChanged X X   X


© 1998 Microsoft Corporation. All rights reserved.