加入会议时无响应SmackException NoResponseException

时间:2018-07-02 07:47:35

标签: xmpp chat smack asmack

我加入会议聊天时遇到了例外。

例外:

  

org.jivesoftware.smack.SmackException $ NoResponseException:无响应   在回复超时内收到。超时时间为10000毫秒(约10秒)。等待   响应使用:AndFilter:(StanzaTypeFilter:状态,OrFilter:   (AndFilter:(FromMatchesFilter(ignoreResourcepart):   hdhd@conference.35.171.18.126,MUCUserStatusCodeFilter:status = 110),   AndFilter:(FromMatchesFilter(完整):   hdhd@conference.35.171.18.126/user00000003,StanzaIdFilter:   id = c3v5j-70,PresenceTypeFilter:type = error)))。 07-02 12:39:58.019   31567-31567 / com.br.granplay W / System.err:在   org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:260)

代码:

muc = MucManager.getInstance()
                        .getMultiUserChat(MucManager.getEntityBareJid(jid));
                String strresource = XmppConnection.getXMPPConnction()
                        .getUser().getLocalpart().toString();
                Resourcepart resourcepart = Resourcepart.from(strresource);
                MucEnterConfiguration.Builder mec = muc.getEnterConfigurationBuilder(
                       resourcepart);

                mec.requestNoHistory();
                MucEnterConfiguration mucEnterConfig = mec.build();
                muc.join(mucEnterConfig);

2 个答案:

答案 0 :(得分:0)

org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout

通常,当用户的状态未更新到Openfire服务器并尝试加入会议室时,就会发生此异常。

因此在关闭的应用程序上的onStop()上更新您的状态(不可用)。 并在Resume()上设置您的状态(可用)。

仍然,您会收到此异常,然后在异常时将用户的状态“不可用”发送到Openfire服务器,并在1-2秒后将状态“可用”发送给Openfire,然后加入组。

答案 1 :(得分:0)

在修复之前,我在xmpp连接中使用了以下配置。

 XMPPTCPConnectionConfiguration conf = XMPPTCPConnectionConfiguration.builder()
                .setXmppDomain(mServiceName)
                .setHostAddress(getIpAddressOrNull(mServiceName))
                .setResource("Android")
                .setUsernameAndPassword(mUsername, mPassword) 
                .setKeystoreType(null) //This line seems to get rid of the problem
                .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
                .setCompressionEnabled(true)
                .setSendPresence(true)
                .setDebuggerEnabled(false)
                .build();

问题已删除,已删除资源部分。

.setResource("Android")