我正在尝试实现我的网站像facebook一样使用的聊天功能。我使用了Html,PHP,JQuery和Apache。我之前用JMS做过一些问题,但是我无法弄清楚如何用PHP将消息发送到JMS服务器?
对于JMS,我使用了Weblogic。
答案 0 :(得分:11)
您有几个选择。让我们按照最差到最坏的顺序来看看它们。
首先是Quercus,Java中的PHP实现。在Quercus中运行的PHP代码可以实例化Java类并在它们上调用方法,就像它们是PHP对象一样。您可以像在Java中使用JMS一样使用JMS。我没有这方面的经验。
第二个是the PHP/Java Bridge。开始工作有点复杂,但它的有效工作方式与Quercus相同,代码方式。您可以直接使用任何旧的Java API。我有这个经验,并不愉快。在相应的Apache + PHP子项退出后,Java进程最终在僵尸状态中徘徊。我们最终必须编写一个cron脚本来每晚清理所有正在运行的Java进程,否则服务器最终会耗尽可用内存。
第三个将关注不同的JMS提供商,例如ActiveMQ。为什么?因为ActiveMQ支持许多消息传递API,包括Stomp,这是一个恰好具有a PHP extension的语言无关的消息传递API。 Weblogic可能会说Stomp,但我无法确定是否是这种情况。唯一的Google搜索结果是Weblogic + ActiveMQ integration。
第四个不会考虑JMS。 JMS是一种Java解决方案。 PHP不是Java。有很多消息队列系统可以很好地与PHP配合使用。 ActiveMQ只是一个例子。我个人更喜欢Gearman。 Gearman最初设计用于执行分片远程过程调用,但它对于简单的消息传递同样有效,并且具有a PHP extension以及在阳光下大多数其他语言的绑定。
答案 1 :(得分:2)
只需提供另外两个选项:OpenMQ (using HTTP)和PHPMQ
(关于接受的答案我的两分钱) 很好的答案,一个狡辩:Gearman非常适合远程过程调用,但对于消息传递,JMS更强大(持久性等)。以某种方式瞄准JMS将是我的建议。