2009-12-04 2 views
0

GKPeerPicker 컨트롤을 사용하고 있지 않습니다. 우리는 사용자 정의 UI를 구현하고 있습니다. 우리는 다양한 언어/플랫폼으로 기존의 클라이언트 - 서버 응용 프로그램을 만들었습니다.Gamekit이 이런 식으로 설계된 이유는 무엇입니까? 클라이언트 모드에서도 모든 알림이 수신됩니다.

Gamekit에서 하나는 서버 모드이고 다른 하나는 클라이언트 모드입니다. 피어 모드를 사용하고 있지 않습니다. 그러나 새로운 클라이언트가 연결될 때 이미 연결된 모든 클라이언트는 클라이언트의 연결과 연결 해제에 대해 암시 적으로 통지됩니다. 또한 'sendToAll'을 사용하여 클라이언트에서 데이터를 보내면 서버에 연결된 모든 클라이언트에 도달합니다.

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

이 디자인으로 인해 많은 이점을 얻지 못했습니다. 내 실수를 지적하고 이것이 왜 이렇게 설계되었는지 알려주십시오.

답변

0

이것은 피어 투 피어 연결이 작동하는 방식입니다. 전통적인 시스템에서 서버가 실패하면 통신이 중지되므로이 방법으로 설계되었습니다. 그러나 각 피어는 동등하게 가중치가 부여되며 언제든지 참여/종료 할 수 있으며 나머지 사이의 통신은 계속 발생합니다.

관련 문제