Windows
使用 Jabber 發送網路消息
當其他使用者線上送出報告內容時,我們需要通過網路向各種使用者(合規、生產)發送桌面警報。
目前我們正在使用 NET SEND,但這並不能保證傳遞,並且從客戶端和伺服器的角度來看都證明是不可靠的(我猜在更高版本的 Windows 中將不支持;我們目前正在執行 XP)。
我們正在考慮基於 Jabber 的解決方案,但是否有人使用 Jabber 客戶端像 NET SEND 那樣在螢幕上彈出警報消息,而不是僅僅將聊天視窗置於最前面或在系統附近顯示臨時“祝酒詞”消息托盤。
我們需要警報消息是持久的,並且只被使用者關閉,表明他們已經看到它。Toast 風格的彈出視窗會很好,只要它不僅在有限的時間內並且必須再次被使用者關閉。
有什麼解決辦法嗎?
我們家也有類似的東西。我們將 Miranda IM 客戶端與 notifyanything 和彈出外掛一起使用。
Notifyanything 允許客戶端在指定埠上接收 udp 消息。Popup 就是這樣做的,在使用者螢幕頂部的視窗中顯示消息。
在我們的例子中,一切都在內部網路上,所以 UPD 數據包的失去不是問題。
這是我們執行以將 udp 消息從伺服器發送給使用者的 python 腳本範例:
#!/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)