我正在尝试与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发送的话?
感谢任何意见或建议
您能否澄清您尝试连接CCS的位置?它看起来像你试图从Android客户端连接到CCS,这不是这种设计的方式。 –
我已经能够连接到FCM CCS。原来我错过了SSLsocket。所以我所做的只是使用我的SSLcontext来创建一个SSLsocket。现在错误消失了,我连接到FCM CCS。但是现在我收到以下错误:在X-OAUTH2上编码错误。看起来连接尝试使用Smack库来使用SASLAuthentication。我试图注销SASLMechanisms并强制连接只使用SASLPlainMechanism,这是FCM CCS要求的Android客户端。也许,我应该改变我的身份验证顺序。 @ArthurThompson –
你从哪里运行你的应用服务器或Android客户端的代码? –