发送大尺寸图像、视频和音频时 XMPP 客户端断开连接

2023-12-22

我已经使用 robbiehanson xmpp 示例实现了 xmpp。我可以聊天,也可以发送图像。我发送的图像被转换为​​ nsdata 并进一步转换为 Base64String,然后发送字符串

[self.xmppStream sendElement:message];

这样,如果图像尺寸较小,我可以立即发送该图像,但如果图像尺寸较大,则两个 xmpp 用户会断开连接,并且不会传输文件。视频和音频也会发生同样的情况。虽然我可以使用压缩图像

UIImageJPEGRepresentation(image,0.005);

但如何发送视频和音频,因为尺寸显然会很大。我已阅读有关 XEP - 0065 和 XEP - 0096 的文档,但无法以正确的方式实现它。请让我知道为什么用户会断开连接,为什么我无法使用 base64 传输大文件,并分享可以帮助我传输视频和音频的代码。

非常感谢您的帮助。


虽然 XMPP 允许传输少量二进制数据,但建议“带外”共享大文件或视频/音频流并使用 XMPP信令协议 http://en.wikipedia.org/wiki/Signaling_protocol- 您应该只发送 http:// 或 rtp:// 链接,您好友的客户端就会下载它,或者开始播放给定流中的音频/视频。您可以以任何形式发送该链接,但有一些“标准草案”XMPP 扩展,可以与现有客户端兼容:

  1. XEP-0066:带外数据 http://xmpp.org/extensions/xep-0066.html- 简单的扩展,您只需将 URL 附加到标准<message />元素。
  2. XEP-0095:流启动 http://www.xmpp.org/extensions/xep-0095.html and XEP-0166:叮当声 http://xmpp.org/extensions/xep-0166.html- 这些是“元”规范,描述客户如何“协商”其支持的功能,选择他们喜欢的共享数据的方式(ibb http://www.xmpp.org/extensions/xep-0047.html, oob http://xmpp.org/extensions/xep-0066.html, 字节流 http://www.xmpp.org/extensions/xep-0065.html, 叮当RTP http://xmpp.org/extensions/xep-0167.html等),查找打开的 TCP 端口或中介代理、NAT 遍历等。

因此,如果您只想共享文件 - 通过任何现有的文件共享服务共享它并发送第一个 XEP 中所述的 URL。如果您想构建大型服务或 VOIP 应用程序 - 使用 SI 或 Jingle。但没有人阻止您创建自己的 XMPP 扩展,这可能更容易实现。Here http://xmpp.org/extensions/xep-0327.html是一个自定义的XMPP扩展,它不是由XMPP社区开发的,但被XSF接受为实验性的,你也可以检查它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发送大尺寸图像、视频和音频时 XMPP 客户端断开连接 的相关文章

  • 验证 iOS 应用程序时出现 com.apple.developer.linked-domains 问题

    当我在 Xcode 中使用 Organizer 验证我的项目时 出现以下错误 无效的代码签名权利 你的申请包的签名包含代码签名权利iOS 上不支持的 具体来说 值 for key com apple developer associated
  • Objective c,实例成员的内存管理

    我对实例成员的内存管理感到困惑 我有一个带有 ivar 的课程 DetailedResultsTableViewController detailedResultsTableViewController and property nonat
  • 在哪里可以了解有关 WebCoreSharedBufferData 的更多信息?

    我有一个在 iOS 6 上完美运行的应用程序 但在 iOS 7 上 如果用户采取了非常具体的操作 太复杂而无法进入 但它使用UIWebView并且它是一致的 应用程序崩溃并出现错误 Terminating app due to uncaug
  • Swift 中的协议与多态性

    我对面向对象编程相当陌生 我正在尝试了解协议 委托和多态性 我最近观看了一个培训视频 其中宣传当您有两个相似且具有相似方法实现的类时 协议是优雅地实现此目的的最佳解决方案 这就说得通了 然而 一些额外的研究让我发现了多态性 听起来这也是一种
  • 线程1:EXC_BAD_ACCESS(代码=1,地址=0xf1759018)

    所以我收到了这个错误 如下图 当我收到此错误时 正在检查我的核心数据库 并根据我收集的电池统计数据对结果进行平均 这一切工作正常 直到我休息了一下然后回来 将其插入并开始出现此错误 我有一个异常断点 但除了图像中的崩溃之外 它仍然没有向我显
  • 我可以/如何确定设备是否有振动?

    我有一些设置可以启用 禁用某些操作的振动 但我发现如果设备没有振动能力 则显示它们毫无意义 有没有办法检查用户是否正在使用 iPod touch 以及它是否有振动 我不确定除了进行模型检查之外还有其他方法可以做到这一点 这可能不是一个很好的
  • 在 Mac OS 10.14.2 上的 Python 3.7 中安装 JPype1 时出错

    我在系统中安装 JPype1 时遇到错误 我正在使用Python 3 7 JPype1 是 Jaydebeapi 的依赖项 pip install Jpype1 以下是错误消息 Collecting jpype1 Using cached
  • dyld:未找到符号:___NSDictionary0__ 在 XCode 7 和 iOS 目标 9.0 中使用带有发现文档的 google ServiceGenerator 二进制文件时

    我正在尝试使用 Google 从 Google 后端生成客户端 API 代码serviceGenerator以发现文档作为输入 以下是确切的命令 Users raja Library Developer Xcode DerivedData
  • 如何获取 iTunes connect 团队 ID 和团队名称?

    我正在写下一个Appfile for fastlane 我的问题是我已经有了team name and team id在 Apple 开发中心 但我无法获取iTunes Connect ID itc team id 我正在与不同的团队合作
  • 如何检查dispatch_async块是否已完成运行

    所以基本上我需要能够在块完成运行后运行 segue 我有一个块可以执行一些 JSON 操作 我需要知道它何时完成运行 我有一个队列 我称之为 json queue jsonQueue dispatch queue create com ja
  • Health 处理多个步骤源的方式与 HealthKit 不同——swift

    我的 Swift iOS 应用程序与 HealthKit 连接 向用户显示他们当天到目前为止已经走了多少步 在大多数情况下 这是成功的 当步数的唯一来源是 iPhone 内置计步器功能记录的步数时 一切正常 并且我的应用程序显示的步数与健康
  • 跨平台 IAP

    我已在 iOS 和 Android 中集成了应用内购买 自动续订订阅 两者都工作正常 我对使用跨平台验证 IAP 有一定的疑问 例如 当多个用户登录一个应用程序时 某一特定应用程序的订阅如何运作 例如 如果用户 A 有标准套餐并且从应用程序
  • 我们可以在 Objective-C 中创建可空/非空属性吗?

    我们可以在 Objective C 中创建可空 非空属性吗 如果可以 那么如何创建 您可以使用 Nullable and Nonnull预选赛 property copy nullable NSString name property co
  • 使 UITableView 中的动态更新内容可供 VoiceOver 访问

    我正在努力让我的应用程序更易于访问 到目前为止 标签和提示等标准可访问性正在创造奇迹 然而 我在动态更新 UITableView 中显示的内容时遇到了问题 表的每一行大约每秒更新一次 但如果我尝试在此时创建每个单元格的accessibili
  • Android 应用程序中通过 VideoView 将正在播放的视频静音

    我想在我的 Android 应用程序中将 VideoView 正在播放的视频静音 我在 VideoView 类中找不到任何方法来执行此操作 知道如何做到这一点吗 我在 MediaPlayer 类中找到了一个方法 setVolume 但我无法
  • 如何将 CGRect 转换为 MapRect

    我创建了一个如下方法将 CGRect 转换为 MapRect 如下所示 MKMapRect mapRectForRect CGRect rect CLLocationCoordinate2D topleft mapView convertP
  • iOS 版 Google Analytics 中的线程崩溃

    使用适用于 iOS 版本 3 0 9 以及一般的 3 0 x 的 Google Analytics 库 我们看到很多像下面这样的崩溃 它们似乎是随机发生的 Exception Type SIGBUS Exception Codes BUS
  • 使用 NSXMLParser 在 Swift 中解析分层 XML

    我确实在以我实际可以使用的形式获取分层 XML 值时遇到问题 因此我们将不胜感激 我对 Swift 和 IOS 开发还很陌生 所以说实话我并不完全理解解析器 但我希望在这之后我能理解 下面是我尝试解析的示例 XML 它来自肥皂网络服务 连接
  • 还有比这更好的方法在通知附件中使用 Assets.xcassets 中的图像吗?

    我想将 Assets xcassets 中的图像附加到通知中 我已经寻找解决方案大约一个小时了 这似乎是执行此操作的唯一方法 func createLocalUrl forImageNamed name String gt URL let
  • 为 CocoaPods 插件设置 Xcode

    我正在尝试设置终端 Xcode 以便正确工作Xcode CocoaPods 插件 https github com kattrali cocoapods xcode plugin 当我从插件运行集成 cocoapods 选项时 我收到一条消

随机推荐