Нет ответа при присоединении к конференции SmackException NoResponseException - PullRequest
0 голосов
/ 02 июля 2018

я получаю исключение ниже, присоединяясь к чату конференции.

Исключение:

org.jivesoftware.smack.SmackException $ NoResponseException: Нет ответа получен в течение времени ожидания ответа. Тайм-аут был 10000 мс (~ 10 с). Ждать кого-либо ответ с использованием: AndFilter: (StanzaTypeFilter: Presence, 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: at 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 голосов
/ 09 августа 2018

Я использовал приведенный ниже конфиг для соединения 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")
0 голосов
/ 16 июля 2018
org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout

Как правило, это исключение возникает, когда присутствие пользователя не обновляется на сервере Openfire и он пытается присоединиться к комнате.

Обновите свое присутствие (недоступно) в onStop (), в закрытом приложении. И установите свое присутствие (Доступно) на Resume ().

Тем не менее, вы получаете это исключение, затем по исключению отправляете присутствие пользователя «Недоступно» на сервер Openfire, а через 1-2 секунды отправляете присутствие «Доступно» и затем присоединяетесь к группе.

...