首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android Studio上使用Smack构建XML流消息

在Android Studio上使用Smack构建XML流消息
EN

Stack Overflow用户
提问于 2016-07-04 04:34:27
回答 1查看 243关注 0票数 0

我正在尝试通过Smack库验证我与Firebase-Cloud-Messaging的连接。我看到我的连接从谷歌得到了一个streamId,因为我在我的Android Studio IDE上记录了这条消息: Log.d("MyStreamId","Ddd:"+ connection.getStreamId());我的日志返回一个随机的字母数字,所以这意味着谷歌的CCS注意到了我的连接尝试。现在,根据这个链接:https://firebase.google.com/docs/cloud-messaging/server#connecting必须有某种类型的通信交换,以便验证我的“应用服务器”和谷歌的CCS之间的连接。我正在尝试开始使用XML格式化的通信。

我需要构造以下"xml流“,并使用Smack库将其与我的连接一起发送:

代码语言:javascript
复制
<stream:stream to="gcm.googleapis.com"
    version="1.0" xmlns="jabber:client"
    xmlns:stream="http://etherx.jabber.org/streams">

我要做的是创建一个带有以下键的HashMap:" to ","version","xmlns“。我是不是错过了这个HashMap中的另一个密钥?

另外,之后我应该如何继续呢?我应该把这个HashMap转换成某个Json对象吗?我以前在Android Studio上使用过JSON。我是否应该使用Smack Library toXML()中的方法将HashMap转换为流?注意XML对象上的标记。另外,如何使用我的connection对象(即XMPPAbstractConnection对象)将其发送到Google的CCS?我的connection对象也有一个addAsyncStanzaListener对象,希望从Google的CCS接收双向通信。

任何想法或想法都将受到感谢。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-07-04 22:10:33

您在这里提出了一些问题,但我认为您可能误解了将XMPP与FCM一起使用的预期设计。我会试着纠正这一点,你可以改进你的问题。

一般来说,您不应该在Android客户端上使用XMPP。其思想是在您的应用服务器上使用XMPP客户端连接到CCS并与CCS通信。Android将在设备和FCM之间保持一个尽力而为的连接,请注意,这不能像它在您的服务器上那样持续打开连接,因为这会耗尽设备的电池。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38174094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档