일반적인 GKSessionModeServer/GKSessionModeClient
설정이 있습니다.클라이언트 GKSession이 denyConnectionFromPeer 이후에 연결되었다고 생각합니다.
서버가 클라이언트 연결 시도를 denyConnectionFromPeer:
으로 거부하면 클라이언트의 session:connectionWithPeerFailed:
메서드가 호출되지만 서버의 peerID가 GKPeerStateConnected
인 상태 변경이 수신됩니다. 즉, 클라이언트는 서버가 작동하지 않는 동안 연결이 성공했다고 생각합니다. 각 성공적으로 연결 피어에 대한
이 상식과 원격 피어와의 연결이 성공하면
을 말한다
connectToPeer:withTimeout:
에 대한 설명서와 상충 될 것으로 보인다 대리자 'session:peer:didChangeState:
메소드가 불려 에. 연결이 실패하거나 응용 프로그램이 연결 시도를 취소하면 세션에서 대리자의session:connectionWithPeerFailed:withError:
메서드를 호출합니다.
나는이 상태 변경 콜백 이 연결 실패의 경우에 호출되지 것을 말하지 않는다 알고 있지만 클라이언트의 관점에서 최종 결과는 실패한 연결에 나타납니다이다 연결이 성공했다.
빨대에서 쥐고 나는 결과없이 connectionWithPeerFailed
콜백에서 cancelConnectToPeer
을 호출 해 보았습니다.
클라이언트는 다음을 무시하여이 문제를 해결할 수 있지만 GKPeerStateConnected
이지만 이는 서버가 다시 연결을 수락하기 시작할 때 다시 연결되는 것을 어렵게합니다.
그렇다면 클라이언트 세션에서 세션이 끝났음을 알 수없는 이유는 무엇입니까?