2010-05-01 6 views
0

인터넷을 통한 아이폰 (LAN/블루투스가 아닌)간에 쉽게 통신 할 수있는 방법이 있는지, 아니면 애플리케이션을 실행하는 모든 아이폰이 연결되어야하는 전용 서버가 있어야만하는지 궁금합니다.인터넷을 통한 아이폰 게임 개발

예를 들어 인터넷에서 작동하는 게임을 작성한다고 가정합니다. 네 명의 클라이언트가 방에 들어가면 게임이 시작됩니다. 모든 Iphone 클라이언트가 연결되는 서버를 구현해야합니까 (예 : 서버가 Windows에서 개발되었거나 서비스가 될 수있는 경우) 또는 인터넷 기반 응용 프로그램을 개발할 때이 문제를 해결할 다른 방법이 있습니까?

는 아이폰 전용 서버의 일종을 필요로하는, 서로를 찾을 수있을 것이다 있도록

답변

0

우리는 iPhone을 사용하는 온라인 게임을 가지고 있습니다 (우리가해온 것을 생각하고 싶다면 www.ownthisworld.com을 참조하십시오). 기본적으로 우리는 요청을 받아들이고 XML 데이터를 전화로 반환하는 PHP 백 엔드를 사용합니다. 그것은 꽤 잘 작동하지만 얼마나 많은 데이터를 보내고 예상 응답 시간에 달려 있느냐에 달려 있습니다. 어쨌든 우리의 PHP/MySql 백엔드 아키텍처는 우리의 요구에 잘 맞습니다. 일반적인 인터넷 경로를 사용하면 방화벽에 대해서도 그렇게 걱정할 필요가 없습니다.

+0

몇 가지 질문 : 1. 다른 서버를 작성하지 않았으며 사이트의 PHP 페이지를 추가 했습니까? 2. 웹 서비스와이 웹 서비스의 차이점은 무엇입니까? 3. 아키텍처에서 서버는 세션을 사용할 수 있지만 클라이언트와의 양방향 통신을 수행 할 수 없다는 http의 의미에 기반합니다. 서버를 업데이트하거나 웹에서주기적인 쿼리를 수행해야하는 경우 어떤 선수가 게임에서 나왔는지 알고 있습니까? 4. 또한 세션을 통해 또는 각 통화 사용자 + 암호를 전달하여 인증 주소를 지정하는 방법은 무엇입니까? 대단히 감사합니다! – kernix

+0

1. 예. 방금 PHP 페이지를 사이트에 추가했습니다. 2. 웹 서비스와 본질적으로 같습니다. 3. 양방향 없음, 서버는 클라이언트 메시지를 보낼 수 없으며, 클라이언트는 관심있는 사항에 대해 서버를 폴링해야합니다. 예를 들어 매 x 초마다 서버를 폴링하고 서버가 관심 이벤트를 보내도록 설정할 수 있으며 iPhone 클라이언트는 해당 이벤트를 파싱하고 처리합니다. 확실히 폴링에 의존합니다. – Codezy

0

당신은 적어도 중앙 중매 서비스의 일종 필요할 것 감사드립니다.

둘째, 인터넷에있는 장치는 항상으로 간단히 직접 연결할 수 없습니다. 모든 장치가 들어오는 연결을 허용하지 않는 NAT 나 방화벽 뒤에 있으면 게임을 호스트 할 중앙 전용 서버가 필요합니다. 적어도 하나의 iPhone이 들어오는 직접 연결을 수락 할 수 있다면 이 다른 사람을 위해 iPhone 호스트 게임을 가질 수 있습니다.

NAT를 통과하는 데는 몇 가지 방법이 있지만, 일반적으로 복잡성이 매우 귀찮습니다. 플레이어를 연결하려면 중앙 검색 서비스가 필요합니다.