我正在尝试使用PHP和XMPP创建Web应用程序。要求之一是,当浏览器上的Javascript客户端通过XMPP向服务器发送事件时,PHP开始工作并满足该请求。如您所知,XMPP允许其客户“侦听”各种类型的事件,并在找到正确的事件时跳入生活。当然,PHP仅在HTTP请求期间有效,因此,根据我的研究,PHP XMPP客户端只是“一种方式”-即它们只能生成事件,而不能监听和使用它们。
我对专家的问题是:1.我的研究正确吗? PHP / XMPP是单向的吗?2.用PHP可以解决这个问题吗?3. Ruby on Rails是否存在相同的问题,或者它以“双向”方式与XMPP一起使用?
非常感谢,谢谢您的帮助!
欢呼声
听起来您正在尝试将PHP用作XMPP服务器,这会出现问题。它可能在Rails中可行,但并不理想。
[值得一看的是许多开源XMPP平台之一,例如ejabberd。
我并没有真正理解“使用PHP / XMPP的一种方法”的确切含义。但是,根据我的经验,如果您选择使用PHP + XMPP组合(浏览器客户端使用某种xmpp javascript库),则没有任何限制。
通常是使用PHP / XMPP设置时的流程:
在此流程中,PHP脚本的作用类似于浏览器和jabber服务器之间的连接管理器。实际上,在高流量下不建议使用此方法,因为由于PHP脚本已经在等待bosh端点的响应,因此您的Web服务器很快可能会停止接受新的ajax轮询。
您可以从boshchat.php中尝试Jaxl library示例示例,该示例演示了与上述流程完全相同的流程。
此简单代码通过PHP XMPP API发送消息,请看这里API XMPP Sender