使用Jabber发送networking消息

当其他用户在线提交内容报告时,我们有要求将桌面警报发送到networking上的各种用户(合规,制作)。

目前我们使用的是NET SEND,但是这并不能保证交付,并且从客户端和服务器的angular度来看都是不可靠的(我收集的信息在Windows的后续版本中将不被支持;目前我们正在运行XP)。

我们正在考虑一个基于Jabber的解决scheme,但是有人使用Jabber客户端在NET SEND上popup屏幕上的提示消息,而不是将聊天窗口放在前面或在系统附近显示临时“吐司”消息托盘。

我们需要警报信息是持久的,只有被用户解雇,表明他们已经看到了。 吐司风格的popup式广告只要不仅在有限的时间内被用户解雇,就可以。

任何解决scheme

我们家有类似的东西。 我们使用Miranda IM客户端与notifyanything和popup式插件。

Notifyanything允许客户端在指定的端口上接收udp消息。 popup窗口就是这样,在用户屏幕顶部的窗口中显示消息。

在我们的例子中,一切都在内部networking上,所以UPD数据包的丢失不是问题。

以下是我们运行的将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) 

我遇到了这个确切的问题。 目标是在升级path上传递每个警报 – 如果在给定的时间范围内未得到确认,则将警报发送给列表中的下一个人。 我们认定Jabber是最好的解决scheme,但是要做到这一点,我们必须扩展协议或调查更多的客户。 (该协议非常适合扩展,并有无数的客户端可用)。 这是因为经常需要承认一些警报,而不是其他人。

例如。 警报的最终途径:

通过Jabber发送给pipe理员A.
 5分钟后没有确认,通过Jabber发送给pipe理员B.
 5分钟后没有确认,通过短信发送给pipe理员A.
 5分钟后没有确认,通过短信发送给pipe理员B.
 5分钟后没有确认,通过Jabber发送给pipe理员A和B的经理。
 5分钟后没有确认,通过短信发送给pipe理员A和B的经理。
经理评估警报,确认它或电话pipe理员A或B.

问题在于,如果在此过程中产生第二个警报,pipe理员A或B可能希望确认,但不确认第一个警报。 例如,如果他们忙于产生其他警报的单独问题,或者他们不在计算机附近,则要知道第二个警报并不严重,但第一个警报需要靠近计算机和升级机制是find合适人选的最有效方式。

Jabber中有两种types的消息传递。 (我相信叫正常VS聊天)这两种types中的一种可能允许区分哪些消息被回应。 不幸的是,如果收到大量的消息,可能允许的消息传递types对我们testing的客户端造成极大的不便。 (我也不确定testing人员是否确定是否有可能区分正在回应的内容,因为这个问题压倒了testing)。

由于这是探索性的,我们没有时间去实施一个完整的解决scheme,所以我们并没有确定问题是select一个更好的客户端还是扩展协议是必要的。 我仍然认为Jabber是提供警报的最佳方法。 对于任何警报递送/升级系统,承认警报的人应该掌握警报的所有权,并且对于每个不承认警报的人应该有影响。 这必须与系统一起理解到达一个人的最佳方式,随时轮换,警报性洪水的风险,由当前不在轮岗的人员发出警报的问题以及由一个警报系统,如果现有的系统没有,就会意外地build立责任制。

对不起,这不是你的问题(关于Jabber)的确切答案,但你可能想看看ReachAlert。

http://www.tekalign.com/

这会阻止人们破坏你的jabber实现,因为他们可以决定将其用于其他事情(聊天,发送消息给其他用户)。

我也同意networking发送。 它正在消失,通常的做法是禁用它,因为它被滥用于垃圾邮件。

让我知道你的想法和如何去;-)

这可能是一个更好的问题,要求在Stackoverflow,但它看起来像有Jabber的Python和Perl库,所以这应该是可能的。

http://jabberpy.sourceforge.net/

http://search.cpan.org/~reatmon/Net-Jabber-2.0/lib/Net/Jabber.pm

已经使用PSI jabber客户端。 它popup通知以及声音通知。 JAJC jabber客户端也一样。

我认为这可以实现像ZAbbix这样的监视解决scheme,一旦触发了Zabbix的操作,就可以通过远程脚本触发任何远程事件的操作。 操作可以运行远程脚本,通过jabber发送电子邮件或警报,直到触发器被拒绝。