如何使用Swift Client在Socket.IO中发出视频?

时间:2017-10-13 22:09:00

标签: ios node.js swift http socket.io

好的,我有问题......

我正在开发一个视频聊天应用,通过将流分成五个部分来将流发送到服务器。我需要有效地发送这些经常,没有电池寿命问题,因此我选择Websockets(即Socket.IO)进行长时间轮询。所以这里是我尝试采取的所有步骤,但我每个都有问题......

我绝对想做什么

以一种方式使用NSFileManager发送文件而无需"解压缩"。通过解压缩我的意思是......

我尝试的内容:拆分为NSData

这当然有效,但效率很低。在任何这些解决方案中,数据都必须作为NSData对象并以这种方式发送。所以这一切都被加载到临时存储中并缓存了一段时间。 乘以5次进行群组聊天。非常低效,无论我能做多少"垃圾收集",都会导致应用程序,用户和手机出现大量问题

我尝试过的内容:Using Socket.IO-Stream

Nope.它是为Socket.IO构建的JavaScript,但与客户端不兼容。 React Native,任何人?

我尝试了什么:HTTP代替Alamofire 我实际上考虑过这个。我可以捆绑数据并让收音机以某种方式保持清醒状态。这是您显然上传文件的内容;

 let fileURL = Bundle.main.url(forResource: "video", withExtension: "mov")

Alamofire.upload(fileURL, to: "https://httpbin.org/post").responseJSON { response in
    debugPrint(response)
}

神圣的废话。这很好,我可以加载URL,生活将变得容易100倍。但是,以节省电池的方式操作HTTP将是一项很多工程。插座只是为了电池效率而开始。 我不应该,在我的截止日期之前,我无法重新发明轮子。我确定那里有人做了一个非常 SWIFT(哈哈得到)它?)在不吸收移动数据和电池的情况下执行HTTP请求的方式,但是现在,我想要WebSockets。

这些都没有按照我一定想要的方式运作。我只需要:

  • 电池效率要求。这意味着不经常发送它们。 编辑:快速将它们快速发送实际上可以帮助延长电池续航时间。咦。
  • 内存效率高的发送。它应该是原始的非NSData形式。

我要求的太多了吗?也许。但用户是第一个,我需要一个很棒的应用程序来给他们。提前谢谢你的帮助。

UPDATE:现在使用RTMP组合上传流,HLS访问它,Socket.IO发信号,Alamofire发送数据库。仍然保持这个问题是开放的,因为调试这个东西是一场噩梦,我不认为发送文件并将其恢复到另一个客户端需要这么多的依赖。

0 个答案:

没有答案