好的,我有问题......
我正在开发一个视频聊天应用,通过将流分成五个部分来将流发送到服务器。我需要有效地发送这些经常,没有电池寿命问题,因此我选择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发送数据库。仍然保持这个问题是开放的,因为调试这个东西是一场噩梦,我不认为发送文件并将其恢复到另一个客户端需要这么多的依赖。