У нас есть требование отправлять настольные оповещения различным пользователям (соответствие, производство) по сети, когда другие пользователи отправляли контент в Интернете для отчета.
В настоящее время мы используем NET SEND, но это не дает никаких гарантий доставки и оказалось ненадежным как с точки зрения клиента, так и с точки зрения сервера (и, как я полагаю, не будет поддерживаться в более поздних версиях Windows; в настоящее время мы работаем под управлением XP).
Мы рассматриваем решение на основе Jabber, но использовал ли кто-нибудь клиент Jabber для отображения всплывающих сообщений с предупреждениями на экране, как это делает NET SEND, вместо простого вывода окна чата на передний план или отображения временного всплывающего сообщения рядом с системой лоток.
Нам нужно, чтобы предупреждающее сообщение было постоянным и отклонялось только пользователем, указывая, что они его видели. Всплывающие окна в стиле тостов были бы хороши, если бы они не появлялись только на ограниченное время и снова должны были быть отклонены пользователем.
Какие-нибудь решения?
Сожалею, что это не точный ответ на ваш вопрос (о Jabber), но вы можете проверить ReachAlert.
Это не позволит людям испортить вашу реализацию jabber, поскольку они могут решить использовать ее для чего-то еще (для общения в чате, отправки сообщений другим пользователям).
Я также согласен с net send. Он уходит, и его обычно отключают, так как он использовался для рассылки спама.
Сообщите мне, что вы думаете и как это происходит ;-)
Я столкнулся с этой проблемой. Цель заключалась в том, чтобы доставлять каждое оповещение по пути эскалации - отправляя оповещение следующему человеку в списке, если оно не было подтверждено в заданный период времени. Мы определили, что Jabber - лучшее решение, но для того, чтобы все было правильно, нам пришлось расширить протокол или исследовать больше клиентов. (Протокол очень хорошо поддается расширению, и доступно бесчисленное количество клиентов). Эта проблема заключалась в том, что часто было желательно подтверждать одни предупреждения, а другие нет.
Например. Конечный путь оповещения:
Send to admin A via Jabber. No acknowledgement after 5 minutes, sent to admin B via Jabber. No acknowledgement after 5 minutes, sent to admin A via SMS. No acknowledgement after 5 minutes, sent to admin B via SMS. No acknowledgement after 5 minutes, sent to admin A and B's manager via Jabber. No acknowledgement after 5 minutes, sent to admin A and B's manager via SMS. Manager evaluates the alert, acknowledge it or phones admin A or B.
Загвоздка в том, что если второе оповещение генерируется в середине этого процесса, администратор A или B может пожелать подтвердить его, но не подтвердить первое оповещение. Например, если они заняты отдельной проблемой, вызвавшей другое предупреждение, или если они не находятся рядом с компьютером, знайте, что второе предупреждение не является серьезным, но что первое предупреждение должно обрабатываться кем-то рядом с компьютер и механизм эскалации - самый эффективный способ найти нужного человека.
В Jabber было два типа доставки сообщений. (Я считаю, что это называется нормальным против чата). Возможно, что один из двух типов позволил различить, на какое сообщение был получен ответ. К сожалению, тип обмена сообщениями, который мог бы позволить это, вызывал крайние неудобства для клиентов, которые мы тестировали, если был получен большой поток сообщений. (Также я не уверен, определили ли люди, тестирующие, действительно ли можно было различить то, на что они отвечали, из-за того, что эта проблема подавляла тестирование).
Поскольку это было предварительное исследование, и у нас не было времени на реализацию полного решения, мы не определили, была ли проблема просто в выборе лучшего клиента или были ли необходимы расширения протокола. Я по-прежнему считаю, что Jabber - лучший способ доставки предупреждений. Для любой системы доставки / эскалации предупреждений лицо, признающее предупреждение, должно взять на себя ответственность за предупреждение, и должны быть последствия для всех, кто не подтвердит предупреждение. Это должно работать с пониманием системой наилучшего способа связи с человеком, дежурной ротации, риска аварийных наводнений, проблемы предупреждений, созданных человеком, который в настоящее время не в ротации, и любых политических соображений, вызванных система оповещения, которая случайно создает ответственность, если в существующей системе ее нет.
У нас есть нечто подобное в доме. Мы используем клиент Miranda IM с плагинами notifyanything и popup.
Notifyanything позволяет клиенту получать сообщения UDP на указанный порт. Всплывающее окно делает именно это, отображает сообщение в окне в верхней части экрана пользователя.
В нашем случае все находится во внутренней сети, поэтому потеря пакетов UPD не является проблемой.
Вот пример сценария python, который мы запускаем для отправки сообщений udp с серверов пользователям:
#!/usr/bin/python
import socket, sys
hosts = (
('10.0.0.1', 15000),
('10.0.0.2', 15000),
('10.0.0.3', 15000),
)
def send(txt):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
for h,p in hosts:
s.sendto(txt, 0, (h,p))
del s
if len(sys.argv) > 1:
s = "\n".join(sys.argv[-2:])
send(s)
Использовал клиент PSI jabber. Он имеет всплывающие уведомления вместе со звуковыми уведомлениями. То же самое и с jabber-клиентом JAJC.
Возможно, лучше задать этот вопрос в Stackoverflow, но похоже, что для Jabber есть библиотеки python и perl, так что это должно быть возможно.
http://jabberpy.sourceforge.net/
http://search.cpan.org/~reatmon/Net-Jabber-2.0/lib/Net/Jabber.pm
Я думаю, что этого можно достичь с помощью решения для мониторинга, такого как ZAbbix, вы можете запускать действие при любых удаленных событиях с помощью удаленного сценария, после того, как действие было запущено, Zabbix может выполнять эскалацию. Действиями могут быть запуск удаленного сценария, отправка электронной почты или предупреждений через jabber, пока не будет подтвержден триггер.