2016-07-29 44 views
0

我正在尝试与Smack建立与Firebase云消息传递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 

了Android /嫌代码尝试连接,但没有这样做。以下是例外情况:请注意,我的SSlcontext对象已使用keymanagerfactory进行初始化,该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中在提到尝试阅读的异常?来自FCM CCS的XML回复?在尝试连接之前,我应该验证此连接吗?这是什么在这里发生的,当我尝试连接而不验证连接对象是试图验证自己和XML数据包被发送到这些受保护的Smack类的类?如何获得这些可能用于身份验证的XML文档,如果它们确实由FCM CCS发送的话?

感谢任何意见或建议

+0

您能否澄清您尝试连接CCS的位置?它看起来像你试图从Android客户端连接到CCS,这不是这种设计的方式。 –

+0

我已经能够连接到FCM CCS。原来我错过了SSLsocket。所以我所做的只是使用我的SSLcontext来创建一个SSLsocket。现在错误消失了,我连接到FCM CCS。但是现在我收到以下错误:在X-OAUTH2上编码错误。看起来连接尝试使用Smack库来使用SASLAuthentication。我试图注销SASLMechanisms并强制连接只使用SASLPlainMechanism,这是FCM CCS要求的Android客户端。也许,我应该改变我的身份验证顺序。 @ArthurThompson –

+0

你从哪里运行你的应用服务器或Android客户端的代码? –

回答

0

好大家:

所有我在这里失踪摆脱错误的是一个SSLSocket的对象。因为,我对套接字和机器到机器的连接知之甚少,所以我不知道。经过多次阅读,我意识到我错过了这个对象。错误消失了,现在连接可以在我的Android代码和FCM CCS之间流动。所以我只是说这个方法调用我configBuilder对象:

.setSocketFactory(contexty.getSocketFactory()); 

但是,我遇到了,就采用拍击SASLAuthentication应对新的错误。我将尽快发布有关这些错误的问题。似乎我正在接近建立可行的连接/登录FCM CCS。

+0

我得到MucConfigurationNotSupportedException在android的smack 4.2.0-beta1你知道解决方案吗? @i_o – MathaN

+1

我不知道你的例外。我一直在试图建立与FCM CCS的连接的例外情况。我只能告诉你,你应该在以下链接中查看Smack的javadoc:http://download.igniterealtime.org/smack/docs/latest/javadoc/阅读有关类。我认为你的例外来自多用户聊天格式。也许有一个班级处理这个问题。阅读文档。 @MathaN我可以通过阅读这些方法并查看它们如何与其他Smack对象交互来处理很多异常。 –

+0

好的,谢谢。 :) – MathaN