1

我用 PHP (Debian 6.0) 编写了一个 JAXL 守护程序,它坐下来侦听传入的消息,然后通过将有效负载传递给 API 来处理传入的消息。(监听 user1@server 上的传入消息)

然后我遇到的麻烦是向用户发送一条消息。我现在的做法是启动另一个 XMPP 守护程序,发送消息,然后关闭守护程序。这样做的问题是它正在启动另一个带有 JID user1@server 的守护进程来发送到 user2@server。当我关闭 JAXL 时,它也会关闭“监听”守护进程。

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

有没有人知道我如何解决这个问题,也许也可以通过使用监听守护进程来发送消息?

4

2 回答 2

2

很高兴听到这个进展。尽管从您的示例代码$jaxl->sendMessage()看来,您使用的是 JAXL v2.x。如果您对 v2.x 没有任何硬编码依赖,我强烈建议您升级到JAXL v3.x。

如果您正在考虑使用 v3.x,您可以关注这个 google 群组线程Send a message via an existing active connection,它现在有一种通过与在后台运行的 xmpp 守护进程 (IPC) 通信来发送 xmpp 有效负载的官方方式。您甚至可以使用 v3.x 远程控制您的 xmpp 守护程序等等。

于 2012-07-23T05:58:08.657 回答
1

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

于 2012-02-27T03:14:42.770 回答