2012-04-02 4 views
2

Мне нужно создать систему уведомлений, которая будет напоминать пользователям о том, что делают другие. Если один из пользователей добавит какой-то заказ, другой должен увидеть его как предупреждение или что-то в этом роде. Итак, мой вопрос в том, какой способ лучше всего это сделать. Должен ли я использовать TTimer и спрашивать каждые 5 минут или вы знаете лучшую идею?Система уведомлений нескольких пользователей

Извините за extreamly бедный английский ... Я из Польши;)

+0

Не могли бы вы точно объяснить, что вы подразумеваете под пользователем? Несколько сеансов пользователей в Windows? – Tibor

+0

Какова ваша архитектура приложения? База данных? Веб-сервис? Или что? –

ответ

1

Сначала я думаю, что ваш английский отлично :) Я работаю сам с многопользовательским приложением, написанным в Delphi 2007 и Bold. И одна особенность заключается в том, что пользователи могут уведомлять друг друга. Полужирный имеет встроенный механизм обновления, который очень мощный. К сожалению, в наши дни нелегко получить Bold, поскольку оно не продается. Вы также можете попытаться реализовать то, что вам нужно. Попробуйте искать Delphi observer pattern. Подводя итог этому шаблону, мы наблюдаем за регистраторами в списке. Когда что-то случается, что наблюдатели должны быть уведомлены об инициаторе, уведомите всех наблюдателей в списке.

2

Уведомления являются примером использования опубликуйте/подпишите модель связи. Возможно, вы могли бы добавить ориентированное на сообщение промежуточное программное обеспечение в свое приложение и реализовать нечто похожее на систему «chat». Такая система может использовать центральный сервер для пересылки сообщений (документов, команд ...) всем подключенным клиентам. Для технической справочной информации термин message oriented middleware является отправной точкой.

Преимущества существующего «брокеры сообщений» (многие из них с открытым исходным кодом) для уведомлений:

  • они могут хранить сообщения, пока получатель не онлайн (надежная доставка) и сообщения подтверждения поддержки/транзакции
  • межъязыкового и кросс-платформенной работы
  • очень высокой скорости (сотни или тысячи раз быстрее, чем запросы к базе данных)

Из-за их общего дизайна они могут решить многие подобные проблемы, которые сложнее реализовать (или больше ресурсов), чем использование баз данных. Они могут значительно упростить проектирование распределенных систем. Для передового понимания и практических рекомендаций, книга и веб-сайт Patterns and Best Practices for Enterprise Integration от Грегора Хохпе - хорошее начало.

0

Если ваши пользователи находятся в одной локальной сети, вы можете использовать push-уведомление, используя Mailslots. Он будет мгновенным и легким.

Смежные вопросы