JACK XMPP守护进程发送和接收消息

时间:2012-02-22 04:06:20

标签: php xmpp xmpphp

我在PHP(Debian 6.0)中编写了一个JAXL守护程序,该守护程序位于并侦听进入的消息,然后通过将有效负载传递给API来处理传入消息。 (侦听user1 @ server上的传入消息)

我遇到的麻烦就是向用户发送消息。我现在这样做的方法是启动另一个XMPP守护进程,发送消息,然后关闭守护进程。这样做的问题在于它正在启动另一个守护进程,JID user1 @ server将发送给user2 @ server。当我关闭JAXL时,它也会关闭'listen'守护进程。

当我发送消息时,我考虑再次启动侦听守护进程,但启动时间太长(1-2秒),我的应用程序无法承受等待时间。

有没有人有任何想法如何解决这个问题,也许是通过使用侦听守护进程来发送消息?

2 个答案:

答案 0 :(得分:2)

很高兴听到这个进展。虽然从您的示例代码$jaxl->sendMessage()开始,您似乎正在使用JAXL v2.x.如果你对v2.x没有任何硬编码依赖,我会认真地建议你升级到JAXL v3.x

如果您正在考虑使用v3.x,现在可以通过与后台运行的xmpp守护程序(IPC)进行通信来发送xmpp有效负载,则可以按照此google组线程Send a message via an existing active connection进行操作。您甚至可以使用v3.x远程控制xmpp守护进程以及更多功能。

答案 1 :(得分:1)

对于任何对此感兴趣的人,我最终编辑JAXL以在守护程序运行时侦听UDP套接字,如果在UDP套接字上收到数据则使用$ jaxl-> sendMessage(.. 。)并发送消息。然后我写了一个简单的函数,每当我想发送消息时,它就会将数据发送到这个UDP套接字。