Smack库的受保护类内部生成的异常



我正在尝试与Smack建立到Firebase云消息CCS的连接。我对以下受保护的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

android/stack代码试图连接,但未能成功。以下是例外情况:请注意,我的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 ��F@1:8 in java.io.BufferedReader@2c985591) 
                                                                          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)

正如你所看到的,出现问题的Smack类有:受保护的类XMPPTCPConnection。PacketReader和受保护的类XMPPTCPConnection。数据包写入程序尝试读取的异常中提到的Bufferedreader是什么?FCM CCS的XML回复?我应该在尝试连接之前对此连接进行身份验证吗?这就是为什么当我尝试在不进行身份验证的情况下进行连接时,连接对象正在尝试对自己进行身份验证,并且XML数据包正在发送到Smack库的这些受保护类?如果这些XML文档真的是由FCM CCS发送的,我该如何获取这些可能出于身份验证目的发送的XML文档?

感谢您的任何建议

大家好:

为了消除错误,我在这里只缺少一个SSLsocket对象。由于我对插座和机器到机器的连接不太了解,所以我一无所知。经过大量阅读,我意识到我错过了这个对象。错误已经消失了,现在我的Android代码和FCM CCS之间的连接可以流动了。所以我只是将这个方法调用添加到我的configBuilder对象中:

 .setSocketFactory(contexty.getSocketFactory());

但是,我在使用Smack进行SASLA身份验证时遇到了新的错误。我很快就会发布一个关于这些错误的问题。我似乎离建立一个可行的连接/登录FCM CCS越来越近了。

最新更新