首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gloox:"onConnect“不叫Linux Mint13

Gloox:"onConnect“不叫Linux Mint13
EN

Stack Overflow用户
提问于 2012-10-26 00:25:48
回答 1查看 344关注 0票数 0

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

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

使用jabber.org服务器,即使没有调用"onConnect“,应用程序也能够很好地发送/接收消息。但不是在ejabberd上。一开始我以为是证书之类的问题,但后来我们在我们的其他Linux机器(Ubuntu12.04 x64,Arch x64和Debian6.032(服务器在这台机器上运行))上试了试,它在任何一台电脑上都能正常工作。此外,使用Python-Twisted的姊妹应用程序可以在有问题的计算机上很好地连接。

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

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

编辑:我在我的笔记本电脑上制作了一个32位的Mint 13 MATE虚拟机,同样的问题也出现了。我现在可以得出结论,它是薄荷中的某个地方的bug。

EDIT2:在Mint64位上运行良好...我在Mint64位的错误页面上打开了一个标签

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-08 10:57:13

我上周遇到了这个问题,看起来像是gloox的bug。它发生在32位linux上。查看此https://bugs.launchpad.net/linuxmint/+bug/1071416

在fact.you中,你在服务器上是“在线”的,但是你的“存在”状态是未知的。您可以简单地将“聊天”状态发送到服务器以继续您的工作。

像这样

代码语言:javascript
复制
#ifdef GLOOX_ON_CONNECT_BUG_PATCH
    Poco::Thread::sleep(3000);//休息3秒,然后连接成功,哎,该死的bug
    this->is_connected = true;
    client->setPresence(Presence::Chat, 0);
#endif
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13073044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档