-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connection successful only 10% of the time #16
Comments
.onConnect
called only 10% of the time
.onConnect
called only 10% of the time
Also seeing this behavior -- any updates? |
Can you confirm that the problem is with PeerKit rather than Multipeer Connectivity? MPC itself isn't necessarily a paragon of reliability. |
Fair point; will investigate MPC directly. Any guidance on @sudeepag 's question: "Also, what is the procedure to attempt a reconnection after the connection is unsuccessful? Should I call .transceive again after creating a new Transceiver?" |
I'm not sure, I haven't touched PeerKit in a while. |
@danshev Any progress on this? I'm noticing the same issue with my own app, though I used the ConnectionManager struct from Cards Against. |
@dkun7944 unfortunately, I concluded it was the general unreliability of the MPC framework. |
I found that problem is in Advertiser class in didReceiveInvitationFromPeer handler: |
👍 |
I ran into similar problems, and eventually traced it back to the same place that @pdyakov did... my guess is that this test might be here to prevent an Advertiser from accepting an invitation from a Browser that was running on the same device (as in the case of transceiving)? If so, it should probably be comparing the |
I believe this is to fix a problem in iOS7 https://developer.apple.com/library/content/qa/qa1869/_index.html If you don't need to support iOS 7 you can just accept invitation. |
That certainly does appear to be the explanation, thanks, @qiulang! |
I think the main problem with current implementation is when peers first connected then disconnected, they won't connect again. Because when after they accept the invitation, advertiser.stopAdvertising(). So I added a state property in Session and re-start advertising when disconnect. |
I have set up PeerKit as per the example from the Cards Against app and have managed to get two devices to connect to each other.
However, this connection is only successful ~10% of the time. The other times, .onDisconnect is called right away. Is there any reason why this is happening, or am I doing something wrong?
Also, what is the procedure to attempt a reconnection after the connection is unsuccessful? Should I call
.transceive
again after creating a newTransceiver
?The text was updated successfully, but these errors were encountered: