Я пытаюсь установить соединение с Smack для Firebase Cloud Messaging CCS. У меня возникают проблемы со следующими защищенными интерфейсами Smack. Я точно не знаю, зачем нужны эти интерфейсы?Исключения, созданные внутри защищенных классов библиотеки Smack
Ниже, как я установить мой объект конфигурации строитель и мое подключение:
configBuilder = XMPPTCPConnectionConfiguration.builder();
configBuilder.setServiceName("192.168.1.74").setHost("fcm- xmpp.googleapis.com").setUsernameAndPassword(s1, s2) .setPort(5236).setSendPresence(false).setCompressionEnabled(false).setCustomSSLContext(contexty)
other_connection = new XMPPTCPConnection(configBuilder.build());
//other_connection object is an AbstractXMPPConnection object
андроид/привкусом код пытается подключиться, но не в состоянии сделать это. Вот исключения: обратите внимание, что мой объект SSlcontext был инициализирован с помощью keymanagerfactory, который содержит хранилище ключей, которое содержит действительные сертификаты, проверенные центром сертификации.
Исключения:
**** Verification of void org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.<init>(org.jivesoftware.smack.tcp.XMPPTCPConnection) took 135.634ms*
07-29 03:30:14.211 3346-3408/rarigames.answerme V/RenderScript: 0xa172ca00 Launching thread(s), CPUs 2
07-29 03:30:39.281 3346-3548/rarigames.answerme D/ricky: Unable to connect or login to FCM CCS. org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 25000ms (~25s). Used filter: No filter used or filter was 'null'.
07-29 03:30:39.284 3346-3557/rarigames.answerme W/AbstractXMPPConnection: Connection closed with error
org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT ��[email protected]:8 in [email protected])
at org.kxml2.io.KXmlParser.next(KXmlParser.java:432)
at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1169)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:948)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:963)
at java.lang.Thread.run(Thread.java:818)
Как вы можете видеть классы Хлопайте, которые дают проблемы являются: защищенный класс XMPPTCPConnection.PacketReader и защищенный класс XMPPTCPConnection.PacketWriter Что такое BufferedReader упоминается в исключение пытается читать? Ответ XML от CCM FCM? Должен ли я аутентифицировать это соединение, прежде чем пытаться подключиться? Это то, что происходит здесь, когда я пытаюсь подключиться без аутентификации, объект подключения пытается аутентифицироваться, и пакеты XML отправляются в эти защищенные классы библиотеки Smack? Как я могу получить эти XML-документы, которые могут быть отправлены для целей аутентификации, если они действительно отправляются FCM CCS?
спасибо за любые советы или предложения
Не могли бы вы уточнить, с чего вы пытаетесь подключиться к CCS. Похоже, вы пытаетесь подключиться к CCS от клиента Android, что не так, как это было разработано. –
Я смог подключиться к CCM FCM. Оказывается, мне не хватало SSLsocket. Так что все, что я сделал, это использовать SSLcontext для создания SSLsocket. Теперь ошибки исчезли, я подключен к FCM CCS. Но теперь я получаю следующие ошибки: неправильная кодировка на X-OAUTH2. Кажется, что соединение пытается использовать SASLAuthentication с помощью библиотеки Smack. Я пытаюсь отменить регистрацию SASLMechanisms и заставить соединение использовать только SASLPlainMechanism, который запрашивает FCM CCS для клиентов android. Возможно, я должен переключить порядок проверки подлинности. @ArthurThompson –
Где вы используете код smack, ваш сервер приложений или клиент Android? –