Gloox:“onConnect”不称为Linux Mint 13

时间:2012-10-25 16:25:48

标签: linux xmpp firewall mint gloox

这个问题有点棘手,我真的不认为我会找到答案,但无论如何我都会尝试。

我正在使用gloox编写一个用于XMPP传输的C ++程序。我的问题,只发生在我的计算机上(Linux Mint 13 MATE 32bits)是从不调用“onConnect()”处理程序。当我们使用jabber.org服务器时,这不是问题(实际上,我甚至不知道它没有被调用...)但是当我们安装LAN ejabberd服务器时,问题就开始出现了。

使用jabber.org服务器,即使没有调用“onConnect”,应用程序也可以正常发送/接收消息。但不是ejabberd。起初我认为这是证书或其他东西的问题,但后来我们尝试了我们的其他Linux机箱(Ubuntu 12.04 x64,Arch x64和Debian 6.0 32(服务器在这台机器上运行))并且它可以正常工作那些电脑。另外,使用Python-Twisted的姐妹应用程序可以很好地连接有问题的计算机。

每次调用验证函数onTLSConnect(),它返回true。在有问题的计算机上,当使用我们的ejabberd服务器时,之后没有建立连接,并且套接字在大约25秒后自行关闭(并且调用onDisconnect()...)

所以,我的问题:是否有互联网设置(如防火墙?)阻止Gloox终止连接。或者有没有人遇到过类似的问题? 谢谢!

编辑:我在我的笔记本电脑上制作了一个Mint 13 MATE 32位的VM,出现了同样的问题。我现在可以在薄荷中找到它的错误。

EDIT2:在Mint 64位上运行良好....我在Mint的错误页面上打开了一张票

1 个答案:

答案 0 :(得分:1)

我上周遇到这个问题,这似乎是一个阴郁的错误。 它发生在32位Linux上。 请参阅此https://bugs.launchpad.net/linuxmint/+bug/1071416

事实上,你在服务器上“在线”,但你的“存在”状态是未知的。您只需向服务器发送“聊天”状态即可继续工作。

像这样

#ifdef GLOOX_ON_CONNECT_BUG_PATCH
    Poco::Thread::sleep(3000);//休息3秒,然后连接成功,哎,该死的bug
    this->is_connected = true;
    client->setPresence(Presence::Chat, 0);
#endif