如何在不使用xmpp或其他繁重协议的情况下将服务器警报推送到java中的托盘应用程序?
你推荐一种方法来实现这个目标吗?
我打算在配备Comet的服务器上编写一个使用URLConnection的应用程序,但我怀疑这是否可行,因为客户端需要调用JS并且URLConnection不是浏览器..
推送而不是使用专有的客户端 - 服务器方法的最佳方式是什么?
答案 0 :(得分:2)
我在我的Mac上使用Growl来发送来自我的应用的本地通知,但您也可以发送Growl远程通知。还有Windows version和Java library可用。这是示例Java代码(需要Java 6):
// give your application a name and icon (optionally)
Application serverApp = new Application("Server App");
// create reusable notification types, their names are used in the Growl settings
NotificationType start = new NotificationType("ServerStart");
NotificationType shutdown = new NotificationType("ServerShutdown");
NotificationType[] notificationTypes = new NotificationType[] {start, shutdown};
// connect to Growl on the given host
GrowlConnector growl = new GrowlConnector("localhost");
// now register the application in growl
growl.register(serverApp, notificationTypes);
// finally send the notification
growl.notify(new Notification(serverApp, start, "Server is starting", "Good luck"));
答案 1 :(得分:0)
如果你有一个支持java的服务器和java客户端,我会认真考虑使用Apache ActiveMQ。 JMS主题非常适合这种推送(除非你有想要推销twitter的野心)。
当其他事情需要访问这些通知时,查看Apache Camel可能会更好。这允许接受通知并将其路由到不同的位置,即xmpp,email,http,删除目录中的文件,.... Camel附带了一大堆现有的各种协议接口。它有一些简单的DSL可以快速重新配置路由并添加协议或其他过滤器,变换器等......
这两种产品都非常易于嵌入现有应用程序中。