오랫동안이 웹 사이트를 사용하여 답변을 찾았으니 지금 스스로 질문해야합니다! :)GKPeerState 기존이 아닌 피어는 사용할 수 있습니까?
필자 피어를 사용하지 않고 GKSession 및 클라이언트/서버 방식을 사용하여 멀티 플레이어를 구현했습니다 (최대 4 명의 플레이어 허용).
나는 해결책을 찾지 못하는 하나의 큰 문제가 있습니다.
서버 피어를 빠르게 연결 해제했다가 다시 연결하면 클라이언트 피어가 해당 호스트를 "기억"하여 사용 가능한 모든 피어 목록에 영구적으로 표시하며 wifi/bluetooth를 끄면이 설정이 재설정됩니다.
이렇게 5 번 연속해서 실행하면 내 클라이언트는 동일한 이름의 사용 가능한 호스트 5 개를 표시합니다!
누구나이 경험이 있습니까? 해결 방법에 대한 아이디어가 있습니까?
내 게임에 대한 요구 사항은 GKSession이 두 가지 모두를 지원하므로 Bluetooth 용 iPhone SDK 3.0과 Wi-Fi 용 3.1이라는 점에 유의해야합니다.
한 가지 해결책은 서버/클라이언트 모드를 사용하지 않고 서버/클라이언트의 역할을 수행 할 수있는 피어 모드를 사용하는 것입니다. 이 경우에는 피어 문제의 캐싱이 없습니다. 내가 수정 한 방식은 같은 이름이 다시 나타나면 사용 가능한 서버 목록을로드 할 때 목록의 기존 서버 목록을 바꾼다는 것입니다. 나는 같은 동료의 성이 항상 "올바른"것을 발견했다. 물론 호스트를 사용할 수 없지만 여전히 사용할 수있는 경우 문제가 해결되지 않습니다. 피어 모드를 사용하지 않으면이 문제가 해결되지 않습니다. – Ernest