Я пытаюсь реализовать свои сайты с небольшими функциями чата, например, используя facebook. Я использовал Html, PHP, JQuery и Apache. Я сделал до некоторых exaples с JMS, но я не мог понять, как отправить сообщение на JMS-сервер с PHP?
Для JMS я использовал Weblogic.
У вас есть несколько вариантов. Давайте пройдем через них в порядке худшего и не худшего.
Во-первых, Quercus , реализация PHP на Java. PHP-код, запущенный в Quercus, может создавать классы Java и вызывать методы на них, как и объекты PHP. Вы сможете работать с JMS так же, как с ним работать в Java. У меня нет опыта с этим.
Во-вторых, это PHP / Java Bridge . Сложнее работать, но он работает так же, как и Quercus, по коду. Вы сможете работать с любым старым Java API. У меня есть опыт работы с этим, и это было неприятно. Процессы Java в конечном итоге зависали в состоянии зомби после выхода из него соответствующего дочернего элемента Apache + PHP. В конце концов нам пришлось написать скрипт cron для очистки всех работающих Java-процессов в ночное время, иначе сервер в конечном итоге исчерпает доступную память.
В-третьих, будут рассмотрены разные поставщики JMS, такие как ActiveMQ . Зачем? Поскольку ActiveMQ поддерживает множество API-интерфейсов обмена сообщениями, в том числе Stomp , API-интерфейс для агностических сообщений, который имеет расширение PHP . Возможно, Weblogic может говорить Stomp, но я не смог определить, так ли это. Единственными результатами Google были для интеграции WebLogic + ActiveMQ .
Четвертый не думал бы о JMS. JMS – это Java-решение. PHP не является Java. Существует множество систем очереди сообщений, которые хорошо работают с PHP. ActiveMQ – только один пример. Я лично предпочитаю Гирмана . Первоначально Gearman был разработан для выполнения отложенных удаленных вызовов процедур, но он работает одинаково для простой передачи сообщений и имеет расширение PHP, а также привязки для большинства других языков под солнцем.
Просто чтобы дать еще два варианта: OpenMQ (с использованием HTTP) и PHPMQ
(Мои два цента о принятом ответе) Отличный ответ, один вопрос: Gearman отлично подходит для удаленных процедурных вызовов, но что касается передачи сообщений, JMS гораздо более надежна (настойчивость и т. Д.). Цель для JMS каким-то образом была бы моим предложением.