【问题标题】:smack / ejabberd Connection Timeoutsmack / ejabberd 连接超时
【发布时间】:2016-07-04 12:21:21
【问题描述】:

我们使用 ejabberd 的 Pub/Sub 机制在多个客户端之间发送消息。服务端运行的ejabberd版本是16.04,smack库版本是4.1.1。

消息的发布和订阅在一段时间内正常工作,一段时间后我们在客户端收到以下异常:

org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 15000ms (~15s). Used filter: IQReplyFilter: iqAndIdFilter (AndFilter: (OrFilter: (IQTypeFilter: type=error, IQTypeFilter: type=result), StanzaIdFilter: id=T89NL-174)), : fromFilter (OrFilter: (FromMatchesFilter (full): pubsub.unio.com))

尝试谷歌搜索原因,但无法找到解决方案。任何帮助表示赞赏。

提前致谢。

【问题讨论】:

标签: android ejabberd smack


【解决方案1】:

我有同样的问题。登录后,我将连接的数据包回复超时更改为某个合适的值(例如 10 秒)。在 smack 中,在 connection.login() 之后 你可以设置

connection.login();
connection.setPacketReplyTimeout(10000); // 10 sec

更新我尝试了 smack 库版本 4.3.2(和更高版本),方法 connection.setPacketReplyTimeout 被删除,所以改用这个:

connection.login();
connection.setReplyTimeout(10000); // 10 sec

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多