Стало очевидно это, где я работаю потребности, внутренне, "система уведомления". Так как проблема - это, мы очень распространены в течение нескольких зданий, и объем трудовых ресурсов регулярно сохраняет там электронную почту закрытой на часы за один раз.
Я должен создать простой способ смочь выставить сообщение и иметь его "всплывающее окно" на everyones компьютере (или одиночный компьютер).
Моя первая мысль состояла в том, чтобы записать сервис окон, который называет winform/wpf приложение, которое находится на каждом компьютере, который просто открывается с сообщением. Не уверенный, как жизнеспособный идея, которая является всего лишь этим, просто проводит мозговой штурм.
Другой маршрут, я думал, мог быть приложением, которое находится в systray на каждом компьютере, который опрашивает таблицу базы данных, и использование Уведомлений о Запросе могло открыться сообщение каждый раз, когда новая строка добавляется. Затем просто создайте безумно основное приложение для записи строки к той таблице.
Так, что я спрашиваю, то, если кто-либо еще обошел этот путь. Если так, как?
Какие вещи Вы учитывали?
Или моих идей допустимые начальные точки или "яйцо и моя поверхность в идеальном выравнивании"?
Существует ли другой путь, который еще более прост?
Спасибо
Некоторые простые требования-> Должны быть "Одним Путем", поскольку я не могу дать нашей базе пользователей систему "чата". Должен быть, несколько, скрыт, чтобы обескуражить пользователей, отключающих его. А-ля системный лоток или сервис.
Я делал что-то подобное давным-давно, чтобы координировать перекуры. Я просто отправил широковещательный пакет по локальной сети на определенный порт. Работал относительно хорошо, хотя, поскольку любой мог вести трансляцию и у всех появлялось всплывающее окно, этим часто злоупотребляли.
Я никогда не делал этого, но я работал в колл-центре, который использовал что-то подобное, и они безумно полезны. Я помню, как однажды все получили сообщение: «Кто-нибудь знает китайский? ПОМОГИТЕ МНЕ !!» Блестяще. (К счастью, кто-то это сделал.)
В любом случае ваши идеи прекрасны. Лично я бы сделал это как клиент-серверное приложение. Формы Windows или приложение WPF, которое находится в системном трее, может связываться с сервером, используя дуплексное соединение TCP / IP с использованием WCF. Возможно, попросите клиента зарегистрироваться в определенных группах в зависимости от того, на каком компьютере он находится.
Затем, когда кто-то хочет отправить сообщение, он выбирает, в какую группу ему нужно перейти (или во все группы), сообщение попадает на сервер, который отправляется всем подключенным клиентам, и приложение WPF на компьютере получает сообщение и всплывает. Вам даже не нужна база данных, кроме как для хранения пользователей / групп и истории сообщений, если вам нужно.
Это может быть нелепый ответ, но думали ли вы о внедрении системы чата? Его просто реализовать и хорошо протестировать.
Вот несколько возможностей:
http://en.wikipedia.org/wiki/Instant_messaging#User_base
Статья о создании собственного: {{ 1}} http://www.computerworld.com/s/article/9002059/How_to_build_your_own_corporate_IM_system_
Если вы не можете использовать / установить существующие IM, вы можете подумать о реализации простого протокола «чата» в вашем приложении.
Это довольно легко сделать, основываясь на сокетах и многих доступных статьях.
Например:
http://www.codeproject.com/KB/IP/TCPIPChat.aspx
http://www.codeproject.com/KB/miscctrl/SimpleMessenger. aspx? display = Print
Если вам нужно что-то расширенное (например, получение исторического уведомления, управление статусом пользователей и т. д.), вы можете рассмотреть возможность использования openSource Jabber API:
{{ 1}} Например, http://www.codeproject.com/KB/gadgets/googletalk.aspx
Я бы порекомендовал вам SPARK . У нас такая же проблема в моей фирме, и мы, наконец, решили сэкономить время и не изобретать велосипед, а использовать существующее (бесплатное) решение. СПАРК делает эту работу за нас.
«Spark - это кроссплатформенный клиент обмена мгновенными сообщениями с открытым исходным кодом, оптимизированный для предприятий и организаций. Он имеет встроенную поддержку группового чата, интеграцию с телефонией и надежную защиту. Он также предлагает отличные возможности для конечных пользователей с такими функциями, как встроенная проверка орфографии, закладки групповых чатов и беседы с вкладками ».
Самый простой способ сделать это - установить на каждом компьютере простого клиента, опрашивающего центральную службу на предмет предупреждений. Каждое оповещение должно иметь уникальный идентификатор, чтобы каждый клиент мог иметь дело с идемпотентностью (вы не хотите, чтобы центральная служба отслеживала вкладки, на которых клиенты «всплывали»).
Я также рекомендую иметь достаточно короткий срок жизни для каждого предупреждения, поэтому клиенту нужно знать только очень короткий список отображаемых им предупреждений, и поэтому, если машина была перезапущена, будет отображаться только небольшая история предупреждений. .
Имея 300 подписчиков, вы захотите, чтобы опрос также проводился с большим промежутком времени - на самом деле вам не нужно 300 проверок каждые 10 секунд - поэтому вам придется уравновесить техническое желание длительных промежутков между проверками и бизнес-требование получать оповещение в течение определенного периода времени.
Вы можете легко добиться этого с помощью службы .NET / TCP WCF, опрашиваемой приложением WINFORM / WPF, добавляемым в качестве программы запуска, или службой Windows, которая затем порождает пользовательский интерфейс для отображения уведомления.