如何在消息传递 xmpp 框架中发送图像?

Posted

技术标签:

【中文标题】如何在消息传递 xmpp 框架中发送图像?【英文标题】:how to send image in messaging xmpp framework? 【发布时间】:2018-01-22 09:04:10 【问题描述】:

我只发送文本,但我不知道如何使用 XMPP 发送图像/网址、视频并将其集成到 ios 中的聊天应用程序中。

我有很多问题,但我想使用XEP-0363 发送图像 我参考了很多 monal app 之类的演示,但任何演示都无法清除任何内容。

所以 请帮帮我。

【问题讨论】:

我正在将图像上传到 S3,然后我在 Xmpp 中使用 S3 Url 获取图像。 什么是 s3....? 你能和我分享一个代码吗? S3本质上是一个存储服务器,你可以直接上传图片到服务器,你会得到图片的url作为响应, github.com/maximbilan/Swift-Amazon-S3-Uploading-Tutorial 【参考方案1】:

发送图片有几种方法,一种方法是创建一个API,并创建一个上传图片的函数。所以当你要发送图片时,你可以先调用你的API函数,它会上传图片,然后返回图片的URL。然后,您可以在 <message> 节中发送 URL,可能在您自己的自定义标记中。

例如,

<message to=""...>
    <image>http://example.com/myimg.jpg</image>
</message>

当然,然后由客户端来下载图像。

另一种方法是将图像转换为 base64 字符串,并在消息节中发送 base64 字符串。但是我实际上不建议这样做,因为 base64 字符串可能非常大,通过 xmpp 发送大数据包不是一个好主意。特别是如果您在与很多用户进行群聊,在这种情况下,它将不得不将大数据包发送给许多用户,从而浪费宝贵的带宽以及任何离线存储消息的服务器空间。

您当然可以使用前面提到的 XEP-0363,但您只需要确保您的 XMPP 服务器支持它。

【讨论】:

以上是关于如何在消息传递 xmpp 框架中发送图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 somessaging xmpp 框架中发送图像

如何在 ios sdk 中使用 XMPP 传递位置?

XMPP 与 Firebase 云消息传递的连接断开

XMPP框架下微信项目总结授权登陆/注销/注册

在 Firebase Cloud Messaging 上通过 XMPP 传递上游消息的误解

如何在 iphone sdk 的 xmpp 中发送带有消息的笑脸/情感(图像)?