GameKit이 왜 이런 식으로 설계 되었습니까? 클라이언트 모드에서도 모든 알림이 수신됩니다

StackOverflow https://stackoverflow.com/questions/1846814

문제

우리는 GKPEERPICKER 컨트롤을 사용하지 않습니다. 우리는 사용자 정의 UI를 구현하고 있습니다. 우리는 다른 언어/플랫폼으로 전통적인 클라이언트 서버 앱을 수행했습니다.

GameKit에는 서버 모드에 하나가 있고 나머지는 클라이언트 모드에 있습니다. 피어 모드를 사용하지 않습니다. 그러나 일부 새로운 클라이언트가 연결되면 이미 연결된 모든 클라이언트는 모든 클라이언트의 연결 및 단절을 암시 적으로 통보합니다. 또한 'sendtoall'을 사용하여 클라이언트로부터 데이터를 보내면 서버에 연결된 모든 클라이언트에 도달합니다.

나는 이제 서버 피어리드와 나머지 피어리드를 명시 적으로 유지해야한다는 것을 의미합니다. 프로그래밍의 작은 작업이지만 디자인에 대해 궁금합니다. 기존 클라이언트 서버 소켓 프로그래밍에는이 모든 것이 없습니다. 예를 들어 두 클라이언트가 슬롯을 캡처하려면 서버가 첫 번째 요청을 처리하고 슬롯을 채우고 두 번째 요청을 거부합니다.

이 디자인으로 인해 많은 장점이 보이지 않습니다. 내 실수를 지적하고 왜 이런 식으로 설계된 이유를 알려주십시오.

도움이 되었습니까?

해결책

피어에게 피어 연결이 작동하는 방식 일뿐입니다. 기존 시스템에서 서버가 실패하면 통신이 중지되기 때문에 이런 방식으로 설계되었습니다. 그러나 여기서 각 동료는 똑같이 가중치가 높아지고 언제든지 가입/종료 할 수 있으며 나머지의 의사 소통은 계속해서 일어날 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top