使用Android-Smack

时间:2016-07-22 08:59:37

标签: android authentication smack firebase-cloud-messaging

我已经建立了一个" 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文档。怎么样?它们不是诗节。

任何建议都会有所帮助。

感谢

0 个答案:

没有答案