2010-11-02 19 views
5

Estoy tratando de implementar mis sitios con una pequeña función de chat como usa facebook. Usé Html, PHP, JQuery y Apache. ¿He hecho antes algunos exaples con JMS pero no pude encontrar la manera de enviar un mensaje a un servidor JMS con PHP?¿Cómo conectar Jms desde PHP?

Para JMS utilicé Weblogic.

Respuesta

10

Tiene algunas opciones. Repasemos en orden de peor a peor.

Primero es Quercus, una implementación de PHP en Java. El código PHP que se ejecuta en Quercus puede crear instancias de clases Java y métodos de llamada en ellas, al igual que si fueran objetos PHP. Podrías trabajar con JMS de la misma manera que trabajarías con él en Java. No tengo experiencia con esto.

La segunda es the PHP/Java Bridge. Es un poco más complejo trabajar, pero funciona de la misma manera que Quercus, en cuanto al código. Podrías trabajar directamente con cualquier antigua API de Java. Tengo experiencia con este, y no fue agradable. Los procesos de Java terminaron dando vueltas en un estado zombie después de que saliera el hijo correspondiente de Apache + PHP. Eventualmente tuvimos que escribir un script cron para limpiar todos los procesos Java en funcionamiento todas las noches, de lo contrario el servidor eventualmente se quedaría sin memoria disponible.

En tercer lugar estaría buscando en diferentes proveedores de JMS, como ActiveMQ. ¿Por qué? Debido a que ActiveMQ admite muchas API de mensajería, incluida Stomp, una API de mensajería independiente del idioma que tiene a PHP extension. Es posible que Weblogic pueda hablar Stomp, pero no pude determinar si este es el caso. Los únicos resultados de Google fueron para Weblogic + ActiveMQ integration.

Cuarto no estaría pensando en JMS. JMS es una solución de Java. PHP no es Java. Hay muchos sistemas de cola de mensajes que funcionan bien con PHP. ActiveMQ es solo un ejemplo. Yo personalmente prefiero Gearman. Gearman fue originalmente diseñado para realizar llamadas a procedimiento remoto fragmentadas, pero funciona igual de bien para el envío de mensajes simples, y tiene a PHP extension, así como enlaces para la mayoría de los otros idiomas bajo el sol.

2

Sólo para dar otras dos opciones: OpenMQ (using HTTP) y PHPMQ

(Mis dos centavos sobre la respuesta aceptada) gran respuesta, una objeción: Gearman es ideal para llamadas a procedimientos remotos, pero en cuanto al paso de mensajes, JMS se mucho más robusto (persistencia, etc.). Apuntar a JMS de alguna manera sería mi sugerencia.

+0

Su respuesta parece ser un * apéndice *. Proporcione [más detalles sustantivos] (http://meta.stackexchange.com/a/72002/141525) en lugar de solo publicar un enlace. – animuson

+1

Estoy tratando de ofrecer opciones adicionales que no figuran en la respuesta aceptada ... – PhilGA