通过 xmppframework 发送图像

Posted

技术标签:

【中文标题】通过 xmppframework 发送图像【英文标题】:Send Image by xmppfrmaework 【发布时间】:2015-10-12 12:14:06 【问题描述】:

我已经在 localhost 上设置了 ejabberd 服务器,然后我通过在端口 5222 上选择 XMPP (jabber) 服务器在 Adium 上注册了一个帐户。之后我在移动测试应用程序上配置了一个帐户并在两个用户之间发送消息 (Adium/test应用程序)成功。但是在将图像从我的测试应用程序发送到 Adium 时,我遇到了一个问题(控制台中没有错误消息)。 Adium 上没有收到它。

NSData *dataF = UIImageJPEGRepresentation(imageName, 0.0);


NSString *imgStr = [dataF base64EncodedStringWithOptions: 0];


NSXMLElement *body = [NSXMLElement elementWithName:@"body"];

[body setStringValue:@"123"];


NSXMLElement *ImgAttachement = [NSXMLElement elementWithName:@"attachment"];

[ImgAttachement setStringValue: imgStr];


NSXMLElement *message = [NSXMLElement elementWithName:@"message"];

[message addAttributeWithName:@"type" stringValue:@"chat"];

[message addAttributeWithName:@"to" stringValue:jid];

[message addChild:body];

[message addChild:ImgAttachement];


[self.xmppStream sendElement:message];

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我们在我们的 ios 应用中看到了类似的问题。我认为您需要以某种方式将这两个用户添加为朋友/联系人,并确保您已在 ejabberd 配置文件中启用 mod_vcard_xupdate 模块。看看有没有帮助。

【讨论】:

感谢您的回答,但我找不到配置文件,请解释路径。 它应该在安装 ejabberd 的目录中的 conf 文件夹中(对我们来说是 /opt/ejabberd) conf 文件夹中有 4 个文件。我在 ejabbered.yml 中搜索了 mod_vcard_xupdate,但我找不到该模块。谢谢 在那个 yml 文件中,你应该有一个 mod_vcard:[] 条目和一个 mod_vcard_xupfate:[] 条目,如果它们没有添加的话。这就是我所说的启用模块 我尝试了您建议的方式,但不知何故它不起作用。请帮助我。谢谢。

以上是关于通过 xmppframework 发送图像的主要内容,如果未能解决你的问题,请参考以下文章

如何从 xmppframework 的 didReceive IQ 方法中检索图像?

XMPPFramework - 如何将图像从一台设备传输到另一台设备?

如何通过 XMPPFramework 添加好友

ios 通过 xmppframework 传输文件

XMPPFramework - 消息未发送

在 XMPPFramework 中发送消息