XMPPHP 发送消息但收不到

Posted

技术标签:

【中文标题】XMPPHP 发送消息但收不到【英文标题】:XMPPHP sends message but won't receive 【发布时间】:2010-12-02 17:59:13 【问题描述】:
<?php
include("XMPP.php");

$conn = new XMPPHP_XMPP('server.com', 5222, 'user', 'pass', 'home');
$conn->useEncryption(true);
$conn->connect();
$conn->processUntil('session_start');
$conn->message('person@server.com', mktime());
$payloads = $conn->processUntil('message');
$conn->message('person@server.com', mktime());
$conn->disconnect();
?>

正确...所以它连接 - 它启动会话并发送在我正在使用的 jabber 客户端上接收到的第一个时间戳

然后它应该“处理直到”收到一条消息(afaik),如果收到一条消息,则发送另一个时间戳。嗯,这个位是行不通的位。

我没有 XMPP 服务器或 XMPPHP 的先验知识,所以所有的帮助,无论多么基础,都不会被忽视! :)

谢谢。

【问题讨论】:

尝试传入new XMPPHP_XMPHP 的最后几个日志记录选项,即$xmpphp = new XMPPHP_XMPP( $server_settings["address"], 5222, $xmpp_settings["username"], $xmpp_settings["password"], $resource, NULL, TRUE, XMPPHP_Log::LEVEL_VERBOSE ); 这只是给了我一大页信息,对我没有帮助:p 我不知道为什么你不能让这个简单的应用程序与 xmpphp 库一起工作......但是,如果你仍在寻找解决方案,请直接联系库作者,否则请尝试 PHP 中的其他 xmpp 库,例如Jaxl 库github.com/abhinavsingh/JAXL 【参考方案1】:

我为此奋斗了一段时间。事实证明,您必须在连接时宣布您的存在。我从 cli_longrun_example.php 中提取了这个并将它放在我的 $conn->connect() 和 $conn->processUntil('session_start') 调用之后:

$conn->presence($status='Controller available.');

【讨论】:

【参考方案2】:

您可以在 jabber 客户端中接收第一条消息。与

$conn->message('person@server.com', mktime());

但是你会收到来自服务器的消息

   $payloads = $conn->processUntil('message');

但是你不能用那个接收消息。

并且脚本无法加载头,因此您无法收到另一条消息。我有同样的问题。你可以使用 jaxl。

【讨论】:

以上是关于XMPPHP 发送消息但收不到的主要内容,如果未能解决你的问题,请参考以下文章

使用 XMPPHP 的聊天邀请

xmpphp XMPP,从 php 脚本发送消息

如何在 xmpphp 中接收消息

通过 xmpphp 邀请 gtalk 用户

数据包发送但收不到数据包

如何在php中使用xmpp发送和接收消息