2010-11-02 2 views
5

J'essaye d'implémenter mes sites peu de fonction de chat comme des utilisations de Facebook. J'ai utilisé Html, PHP, JQuery et Apache. J'ai fait quelques exaples avec JMS mais je n'arrivais pas à comprendre comment envoyer un message à un serveur JMS avec PHP?Comment connecter Jms depuis PHP?

Pour JMS, j'ai utilisé Weblogic.

Répondre

10

Vous avez quelques options. Passons par eux dans l'ordre du pire à pas pire.

La première est Quercus, une implémentation PHP en Java. Le code PHP s'exécutant dans Quercus peut instancier des classes Java et appeler des méthodes sur eux, tout comme ils étaient des objets PHP. Vous seriez capable de travailler avec JMS de la même manière que vous le feriez en Java. Je n'ai aucune expérience avec celui-ci. La seconde est . C'est un peu plus complexe de travailler, mais cela fonctionne de la même manière que Quercus, en termes de code. Vous seriez capable de travailler directement avec n'importe quelle ancienne API Java. J'ai de l'expérience avec celui-ci, et ce n'était pas agréable. Les processus Java ont fini par traîner dans un état zombie après la sortie de l'enfant Apache + PHP correspondant. Nous avons finalement dû écrire un script cron pour nettoyer tous les processus Java de travail tous les soirs, sinon le serveur finirait par manquer de mémoire disponible.

Troisièmement, nous examinerons différents fournisseurs JMS, tels que ActiveMQ. Pourquoi? Parce qu'ActiveMQ prend en charge de nombreuses API de messagerie, y compris Stomp, une API de messagerie agnostique linguistique qui possède a PHP extension. Il est possible que Weblogic puisse parler de Stomp, mais je n'ai pas pu déterminer si c'est le cas. Les seuls résultats de Google étaient pour Weblogic + ActiveMQ integration.

Quatrième ne serait pas penser à JMS. JMS est une solution Java. PHP n'est pas Java. Il y a beaucoup de systèmes de file d'attente de messages qui fonctionnent bien avec PHP. ActiveMQ n'est qu'un exemple. Personnellement, je préfère Gearman. Gearman a été conçu à l'origine pour effectuer des appels de procédure à distance fragmentés, mais il fonctionne aussi bien pour un simple passage de message, et a a PHP extension ainsi que des liaisons pour la plupart des autres langues sous le soleil.

2

Juste pour vous donner deux autres options: OpenMQ (using HTTP) et PHPMQ

(Mes deux cents sur la réponse acceptée) réponse Grande, une argutie: Gearman est idéal pour les appels de procédure à distance, mais à la transmission de messages, JMS est beaucoup plus robuste (persistance, etc.). But pour JMS d'une certaine manière serait ma suggestion.

+0

Votre réponse semble être un * stub *. Veuillez fournir [plus de détails de fond] (http://meta.stackexchange.com/a/72002/141525) plutôt que d'afficher un lien. – animuson

+1

J'essaie juste d'offrir des options supplémentaires qui ne sont pas listées dans la réponse acceptée ... – PhilGA