我已经建立了一个" TLS"与FCM CCS的连接。我假设我已经建立了它,因为我的Android Studio中的日志不再抱怨我的密钥库初始化了。现在,经过" TLS"握手应该来#34;身份验证"然后连接到FCM CCS。对于连接我试图使用Smack,这已经不过是一个持续3周的噩梦了。
以下是一个大问题:我在哪里以及如何创建这些"身份验证"使用FCM CCS进行身份验证的步骤:以下是根据有关Firebase云消息传递的Google文档的初始步骤: 以下代码段说明了如何在CCS中执行身份验证。
客户端
<stream:stream to="gcm.googleapis.com"
version="1.0" xmlns="jabber:client"
xmlns:stream="http://etherx.jabber.org/streams">
服务器
<stream:features>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>X-OAUTH2</mechanism>
<mechanism>X-GOOGLE-TOKEN</mechanism>
<mechanism>PLAIN</mechanism>
</mechanisms>
</stream:features>
客户端
<auth mechanism="PLAIN"
xmlns="urn:ietf:params:xml:ns:xmpp- sasl">MTI2MjAwMzQ3OTMzQHByb2plY3RzLmdjbS5hb
mFTeUIzcmNaTmtmbnFLZEZiOW1oekNCaVlwT1JEQTJKV1d0dw==</auth>
正如您所看到的,这些是子XML元素而不是Stanzas。顺便说一下,客户端和FCM CCS之间有更多这些子XML交换。我如何使用Smack库来创建此身份验证过程的客户端部分,以及来自FCM CCS的服务器响应将在何处进入。即使我可以设置,我也无法在我的smack连接上获得这些服务器响应AsyncStanzaListener。但是,我认为首先使用FCM CCS进行身份验证,然后与Smack连接。
我知道Smack有SASLMechanisms类,我如何使用它们来启动身份验证过程,如何构建这些子XML文档。怎么样?它们不是诗节。
任何建议都会有所帮助。
感谢