2010-11-02 21 views
5

Próbuję zaimplementować w mojej witrynie funkcję czatu, taką jak Facebook. Użyłem html, PHP, JQuery i Apache. Zrobiłem przed niektórymi exaples z JMS, ale nie mogłem dowiedzieć się, jak wysłać wiadomość do serwera JMS z PHP?Jak podłączyć JMS z PHP?

Dla JMS użyłem Weblogic.

Odpowiedz

10

Masz kilka opcji. Przeanalizujmy je według najgorszego, a nie najgorszego.

Pierwsza to Quercus, implementacja PHP w języku Java. Kod PHP działający w Quercusie może tworzyć klasy Java i wywoływać na nich metody, tak jak były obiektami PHP. Praca z JMS byłaby możliwa w taki sam sposób, jak w przypadku Javy. Nie mam żadnego doświadczenia z tym.

Po drugie to the PHP/Java Bridge. Praca jest nieco bardziej skomplikowana, ale efektywnie działa tak samo, jak Quercus, pod względem kodowania. Będziesz mógł pracować bezpośrednio z dowolnym starym interfejsem API języka Java. Mam doświadczenie z tym i nie było przyjemne. Procesy Java zakończyły się zawieszeniem w stanie zombie po zakończeniu wychodzenia z Apache + PHP. W końcu musieliśmy napisać skrypt crona, aby co wieczór czyścić wszystkie działające procesy Java, w przeciwnym razie serwerowi zabraknie pamięci.

Trzeci będzie dotyczył różnych dostawców JMS, takich jak ActiveMQ. Czemu? Ponieważ usługa ActiveMQ obsługuje wiele interfejsów API do przesyłania wiadomości, w tym Stomp, interfejs API do przesyłania komunikatów językowych, który ma wartość a PHP extension. Możliwe, że Weblogic może mówić w języku Stomp, ale nie byłem w stanie określić, czy tak jest. Jedyne wyniki Google dotyczyły Weblogic + ActiveMQ integration.

Po czwarte, nie myślę o JMS. JMS to rozwiązanie Java. PHP nie jest Javą. Istnieje wiele systemów kolejki komunikatów, które dobrze współpracują z PHP. ActiveMQ to tylko jeden przykład. Osobiście wolę Gearman. Gearman został pierwotnie zaprojektowany do wykonywania zdalnych wywołań proceduralnych, ale działa równie dobrze w przypadku zwykłego przekazywania komunikatów, a także ma powiązania z większością innych języków pod słońcem.

2

Wystarczy dać dwie inne opcje: OpenMQ (using HTTP) i PHPMQ

(moje dwa centy o przyjętym odpowiedź) Świetna odpowiedź, jedno zastrzeżenie: Gearman jest idealne dla zdalnego wywoływania procedur, ale jak do przekazywania wiadomości, JMS jest o wiele bardziej solidne (trwałość itp.). Cel dla JMS w jakiś sposób byłby moją sugestią.

+0

Twoja odpowiedź wygląda jak * *. Podaj [bardziej szczegółowe informacje] (http://meta.stackexchange.com/a/72002/141525) zamiast publikowania linku. – animuson

+1

Po prostu próbuję zaoferować dodatkowe opcje niewymienione w zaakceptowanej odpowiedzi ... – PhilGA