2010-11-02 20 views
5

Sto provando a implementare i miei siti con funzioni di chat come quelle di Facebook. Ho usato Html, PHP, JQuery e Apache. Ho fatto alcuni exaples con JMS ma non riuscivo a capire come inviare un messaggio a un server JMS con PHP?Come connettere Jms da PHP?

Per JMS ho usato Weblogic.

risposta

10

Hai alcune opzioni. Passiamo attraverso di loro in ordine di peggio per non peggiore.

Il primo è Quercus, un'implementazione PHP in Java. Il codice PHP eseguito in Quercus può istanziare classi Java e chiamare metodi su di essi, proprio come se fossero oggetti PHP. Saresti in grado di lavorare con JMS nello stesso modo in cui avresti lavorato in Java. Non ho esperienza con questo.

Il secondo è the PHP/Java Bridge. È un po 'più complesso lavorare, ma funziona in modo efficace come Quercus, in termini di codice. Saresti in grado di lavorare direttamente con qualsiasi vecchia API Java. Ho esperienza con questo, e non è stato piacevole. I processi Java hanno finito in uno stato zombie dopo che il corrispondente Apache + PHP era uscito. Alla fine dovevamo scrivere uno script cron per ripulire tutti i processi operativi di Java ogni notte, altrimenti il ​​server alla fine esaurirebbe la memoria disponibile.

In terzo luogo, sarebbe opportuno considerare diversi provider JMS, come ActiveMQ. Perché? Poiché ActiveMQ supporta molte API di messaggistica, tra cui Stomp, un'API di messaggistica indipendente dalla lingua che risulta avere a PHP extension. È possibile che Weblogic parli Stomp, ma non sono stato in grado di stabilire se questo è il caso. Gli unici risultati di Google erano per Weblogic + ActiveMQ integration.

Quarto non penserebbe a JMS. JMS è una soluzione Java. PHP non è Java. Ci sono molti sistemi di code messaggi che funzionano bene con PHP. ActiveMQ è solo un esempio. Personalmente preferisco lo Gearman. Gearman è stato originariamente progettato per eseguire chiamate di procedure remote più complesse, ma funziona allo stesso modo per il semplice passaggio di messaggi e ha a PHP extension e binding per la maggior parte delle altre lingue sotto il sole.

2

Solo per dare altre due opzioni: OpenMQ (using HTTP) e PHPMQ

(I miei due centesimi circa la risposta accettata) grande risposta, un piccolo neo: Gearman è grande per Remote Procedure Calls, ma come al passaggio di messaggi, JMS è molto più robusto (persistenza, ecc.). Mirare a JMS in qualche modo sarebbe il mio suggerimento.

+0

La risposta è visualizzata come * * stub *. Si prega di fornire [ulteriori dettagli sostanziali] (http://meta.stackexchange.com/a/72002/141525) anziché pubblicare semplicemente un collegamento. – animuson

+1

Sto solo cercando di offrire opzioni aggiuntive non elencate nella risposta accettata ... – PhilGA