Работу сервера декларирует интерфейс IDataObserver:

Все Обработчики Сообщений реализуют интерфейс IMessageHandler:

 

    public interface IMessageHandler : IDisposable

    {

        /// <summary>

        /// Handler has finished processing the message

        /// </summary>

        event EventHandler OnCompleted;

 

        /// <summary>

        /// Message key

        /// </summary>

        string Key { get; }

 

        /// <summary>

        /// Start execute message task

        /// </summary>

        void StartHandler();

 

        /// <summary>

        /// Cancel execute message task

        /// </summary>

        void CancelHandler();

    }

 

Каждый новый тип Обработчика предназначен для определенного типа Сообщений. Любой обработчик должен сразу же блокировать Сообщение, изменить его статус на Processing.

Очень часто требуется обрабатывать Сообщение в новом потоке и учитывать контекст безопасности пользователя, который создал сообщение. В такой ситуации зарегистрируйте пользователя в новом потоке используя метод MQSecuredObjectSpaceProvider.RegisterUser(user,thread).

Всегда учитывайте два возможных режима работы Сервера и для работы именно с Сообщениями используйте ObjectSpace из MQManager (см. Сообщения и Менеджер Очереди).

После реализации нового типа Обработчика, обязательно зарегистрируйте его на Сервере:

 

XafariServerModule.DataObserver.ServerHandlersStrategy.RegisterHandler("MessageTag",

                (app, messageKey) => new SomeMessageHandler(app, messageKey));

 

Без регистрации Сервер не будет отправлять Сообщения Обработчику.