Peer-to-peer network over wifi in iOS
Solution 1
iOS 7 adds the Multipeer Connectivity Framework for exactly this purpose.
Solution 2
I think Open Peer is the right solution. It provides real direct peer-to-peer connection between devices without the need of a centralised server. Check out this introductory video.
Solution 3
Have you thought of using Apple's GameKit framework? I've used it in the past for some simple communication between devices. It's really simple and can get you out of the gate quickly. This looks like a good tutorial.
Solution 4
You cannot create a wi-fi network programmatically in iOS using current APIs. GameKit offers some APIs to do so over bluetooth however.
If you wish to implement a custom solution using CocoaHTTPServer, be aware that you will still not be able to create a direct wi-fi connection, you will simply be able to connect devices on the same (pre-existing) wi-fi network.
Ad-hoc peer to peer Wi-Fi (such as 802.11s) in iOS is still a few years off. Maybe iOSX ;)
Solution 5
iOS supports the Multipeer Connectivity framework which enables iOS devices to talk to each other over Bluetooth, infrastructure (with a router) WiFi, or P2P.
It does not, however, provide a way to explicitly use P2P. There is a layer of abstraction away from how any of a device's peers (other iOS devices) are connected, and it does not currently allow for non-iOS devices to be connected.
Andrew
Updated on July 09, 2022Comments
-
Andrew almost 2 years
I've been at this for a few days now, and can't seem to find a solution. I want to create a peer to peer network over wifi on iOS. All open source code seems to be supporting running a server or being a client, but there's no code built to support being both - a peer. Is anybody aware of a way I can do this?
-
Andrew about 11 yearsThe problem is this involves them accepting my app can use gamekit, which seems a bit random to the user.
-
ArpitM about 11 yearsWhich part, the name GameKit, the GameKit UI or both? You can roll all your own custom UI and nobody will be the wiser. The
GKPeerPickerController
will simplify your life right out of the box and doesn't look like one is playing a game. However, you can roll your own solution and have your own UI. -
ArpitM about 11 yearsThe documentation says: A GKSession object provides the ability to discover and connect to nearby iOS devices using Bluetooth or Wi-fi.
-
cleverbit about 11 yearsOnly bluetooth is used for direct peer-to-peer connections. Wi-fi is used for Bonjour over LAN.
-
sage444 over 9 yearsworking link developer.apple.com/library/ios/DOCUMENTATION/…
-
arlomedia over 9 yearsI'm currently using GameKit for p2p data transfer in a non-game, and I'm not aware that users were ever prompted to accept or approve this functionality. Bluetooth connections are fairly easy to set up, however, the connections are flaky and the data transmission is slow for more than small bits of data, compared to wi-fi.
-
user2159978 over 9 yearsI don't recommend you to use this framework. It is very universal but it is too slow.
-
user2159978 over 9 yearsGameKit part for p2p connection is deprecated. Apple recommends to use Multipeer Connectivity Framework but it is too slow
-
user2159978 over 9 yearsGKSession is deprecated in iOS 7
-
Karthik over 8 yearsopen peer does it over internet
-
Lance Samaria about 4 yearsthey seem to have abandoned the iOS project. The last iOS Github update was 5 yrs ago