Hacker News new | ask | show | jobs
by lukedoolittle 3082 days ago
I tried to make a demo app to perform very simple HTTP p2p and found this difficult on iOS. When an app is backgrounded you have ~17 seconds to stop execution or the OS will kill any active threads UNLESS the activity is among the Apple permitted exceptions. (Note that there is no iOS SyncThing app). In Android it is possible to use IntentService as a single threaded background HTTP server. It works for the most part but can be a little flakey. I'm not 100% sure how the OpenGarden SDK accomplishes this but I'm interested. My guess is that it makes heavy use of Bluetooth, which is one of the Apple permitted exceptions to the backgrounding rule.
2 comments

> there is no iOS SyncThing app

There’s fsync() but it only syncs when you launch the app - what I think you meant is “there’s no continuously syncing iOS SyncThing app”.

Yes, thanks for the clarification. Continuous/background syncing is the difficult task.
Why not perform the invoking and setup of the call via a server, but then perform the actual call on p2p once the device is awake and the app on the foreground?