【问题标题】:No response while joining conference SmackException NoResponseException加入会议时无响应 SmackException NoResponseException
【发布时间】:2018-07-02 07:47:34
【问题描述】:

我在加入会议聊天时遇到异常。

例外:

org.jivesoftware.smack.SmackException$NoResponseException: 无响应 在回复超时内收到。超时为 10000 毫秒(约 10 秒)。等待 使用响应:AndFilter: (StanzaTypeFilter: Presence, OrFilter: (AndFilter: (FromMatchesFilter (ignoreResourcepart): hdhd@conference.35.171.18.126,MUCUserStatusCodeFilter:状态=110), AndFilter:(FromMatchesFilter(完整): hdhd@conference.35.171.18.126/user00000003,StanzaIdFilter: id=c3v5j-70,PresenceTypeFilter:类型=错误)))。 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);

【问题讨论】:

    标签: xmpp chat smack asmack


    【解决方案1】:
    org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout
    

    通常,当用户的状态未更新到 Openfire 服务器并尝试加入房间时,会出现此异常。

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

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

    【讨论】:

      【解决方案2】:

      我在修复之前使用以下配置进行 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")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多