linux - Gloox: "onConnect"不叫 Linux Mint 13

标签 linux xmpp firewall linux-mint gloox

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

我正在编写一个使用 gloox 进行 XMPP 传输的 C++ 程序。我的问题只发生在我的计算机上(Linux Mint 13 MATE 32 位)是永远不会调用“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 位虚拟机,但出现了同样的问题。我现在可以断定这是薄荷某处的错误。

EDIT2:在 Mint 64 位上工作正常....我在 Mint 的错误页面上开了一张票

最佳答案

我上周遇到了这个问题,好像是gloox的bug。 它发生在 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

关于linux - Gloox: "onConnect"不叫 Linux Mint 13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073044/

相关文章:

linux - 如何从 shell 命令获取 pppd inet 地址

java - 如何从服务器端 Java 应用程序发送 XMPP 通知?

linux - 我被硬件黑客入侵/后门了吗?

linux - 如何将 IP 地址添加到 NAT 表 (Linux Debian) - POSTROUTING 链

ubuntu - nginx 已启动但端口 80 未在 AWS 上使用(根据 netstat)

linux - 终端中的蓝牙

linux - 如何从 python 脚本暂停 bash 脚本?

linux - Nagios 检查中的 Perl 正则表达式

mysql - 用 Mysql 配置 ejabberd,报错 p1_mysql.app not found

ios - Xmpp 接受好友请求