2010-05-27 16 views
3

Comment puis-je envoyer des alertes de serveur à des applications de plateau dans Java sans utiliser xmpp ou d'autres protocoles lourds?Envoyer des alertes à l'application de notification en Java

Recommandez-vous un moyen d'accomplir ceci?

Je comptais écrire une application qui utilise URLConnection sur un serveur équipé de la comète, mais je doute que cela pourrait fonctionner comme le client a besoin d'un JS à invoquer et URLConnection est pas un navigateur ..

Qu'est-ce que la meilleure façon de pousser au lieu d'utiliser une approche client-serveur propriétaire?

+0

Salut, avez-vous trouvé une solution à votre problème spécifique. Je suis dans le même bateau. –

Répondre

0

Si vous avez un serveur compatible java et des clients java, j'envisagerais sérieusement d'utiliser Apache ActiveMQ. Un sujet JMS fonctionne très bien pour ce genre de choses (sauf si vous avez des ambitions pour détrôner Twitter).

Lorsque d'autres éléments doivent accéder à ces notifications, il peut être utile de regarder Apache Camel. Cela permet aux notifications d'être acceptées et acheminées vers différents emplacements, à savoir xmpp, e-mail, http, en déposant des fichiers dans un répertoire, .... Camel est livré avec tout un tas d'interface existante à divers protocoles. Il a quelques DSL simples pour reconfigurer rapidement des routages et ajouter des protocoles ou d'autres filtres, transformateurs, etc ...

Les deux produits sont extrêmement simples à intégrer dans une application existante.

2

J'utilise Growl sur mon Mac pour les notifications locales de mes applications, mais vous pouvez également envoyer des notifications à distance Growl. Il y a aussi un Windows version, ainsi qu'un Java library disponible. Voici l'exemple de code Java (nécessite 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"));