android中smack的消息节中缺少自定义属性

Posted

技术标签:

【中文标题】android中smack的消息节中缺少自定义属性【英文标题】:Missing custom Attribute in message Stanza in smack in android 【发布时间】:2016-10-27 09:06:27 【问题描述】:

我在 smack 消息节中缺少一些自定义属性,例如示例

本节是服务器发送:

<message to='me' from='someone' id='18' xml:lang='en' type='chat'><body>X</body><thread>7067c261-1987-429e-89c0-ced23cf3514b</thread><mycustomtag xmlns='urn:xmpp:mycustomtag' mid='18' deptID='3' visitorName='me' csId='someid'/></message>

但是我得到了 mycustomtag 属性,就像我得到的消息节一样

<message to='me' from='someone' id='18' xml:lang='en' type='chat'><body>X</body><thread>7067c261-1987-429e-89c0-ced23cf3514b</thread><mycustomtag xmlns='urn:xmpp:mycustomtag' /></message>

这是我在日志中得到的内容。请有人帮助我。

这是消息节的接收者:

 chatmanager.addChatListener(new ChatManagerListener() 
        @Override
        public void chatCreated(Chat chat, boolean createdLocally) 
            chat.addMessageListener(new ChatMessageListener() 
                @Override
                public void processMessage(Chat chat, final Message message) 

【问题讨论】:

请添加您的代码以拦截和解析您的标签 这是我正在使用的消息接收代码:chatmanager.addChatListener(new ChatManagerListener() @Override public void chatCreated(Chat chat, boolean createdLocally) chat.addMessageListener(new ChatMessageListener() Override public void processMessage(Chat chat, final Message message) 哪个服务器?开火? 这些日志。这些是来自 smack 库还是您登录的 processMessage? 【参考方案1】:

本质上,如果您不在服务器中管理扩展元素,当它找到一个只是复制结构时,作为回复的客户端只会找到标签。

您必须验证服务器中的数据(在您的情况下,还要复制属性和文本)。如果你使用 Openfire,我做了一份简历。

Mapping Openfire Custom plugin with aSmack Client

【讨论】:

以上是关于android中smack的消息节中缺少自定义属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Smack 4.1 中的 XMPP 消息标签中添加自定义属性(昵称)

Android Smack XMPP 节侦听器:缺少节属性

Openfire:在android上使用smack向特定人广播消息

发送自定义 IQ 查询 (Android)(Smack)

如何使用 SMACK 在 Android XMPP 客户端中解析自定义花名册查询响应

使用 Smack Api for Android 发送和接收消息