2012-03-16 1 views
2

iOS 장치가 "서버"로 작동하고 다른 장치가 클라이언트처럼 작동하는 앱을 개발하고 있습니다. 내가 예를 들어 한 경우 내가 봉쥬르Bonjour - 하나의 서버 여러 클라이언트 - iOS iPhone

를 사용하여이 할 수있는 경우 임은 이해 힘든 시간을 받고 : 를 +++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++ 모든 기기에 동일한 앱이 설치되어 있습니다. 모든 사용자는 동일한 WIFI에 연결됩니다.

사용자는 앱에 로그인해야하며 사용자가 인터넷에 접속하면 CMS (웹 서버)에서 채팅방을 채 웁니다.

모두 볼 수 있습니다. 모든 "대화방". 그러나 처음에는 대화방이 모두 읽기 전용입니다. 누구나이 항목을 탐색 할 수 있지만 아무도이 항목을 쓸 수 없습니다.

관리자 (관리자 권한이있는 사용자)가 대화방 중 하나를 열면; 모든 고객은 이제 "열린"채팅방에 글을 쓸 수있게되었습니다.

물론 한 사용자가 무언가를 쓸 때 다른 사용자는 그에게 가장 최신의 댓글을 보게됩니다.

관리자는 채팅방의 모든 클라이언트를 확인해야하지만 클라이언트는 서로를 볼 수 없습니다.

++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++

내가 발견 한 모든 샘플 WWDC에서 ...)는 두 개의 장치 만 사용하고 있습니다. 나는 4 개의 장치에 WiTap을 설치했다. 두 장치를 연결하고 작동시키는 "샘플"게임을 만들 수 있습니다.

여러 클라이언트가 하나의 "서버"에 연결된 방식으로 Bonjour 서비스를 사용할 수 있습니까?

모든 힌트를 환영합니다!

+0

당신은 대화방이 웹 기반이라고 말합니다. 그런 다음 관리자는 웹 서버를 통해 채팅 룸을 잠 그거나 잠금 해제 할 수 있으며 모든 애플리케이션 (관리자 포함)은 클라이언트로 작동합니다. 아니면 관리자 앱이 웹 서버 역할을한다고 말하는 것입니까? –

+0

당신은 포인트를 가지고 있지만 ... 대화방에서 글쓰기는 Bonjour 서비스에 연결된 클라이언트에서만 가능합니다. 다른 고객 (집 또는 다른 WIFI)은 채팅방에 글을 쓸 수 없습니다. –

+1

흠, Bonjour는 실제로 특정 네트워크에서 서비스를 발표하는 데 사용됩니다. 예를 들면 다음과 같습니다. 서버 (텔넷, HTTP, 사용자 정의 TCP 일 수 있음) 역할을하는 하드웨어 장치 (또는 응용 프로그램)가있는 경우 ...) Bojur를 통해 자체적으로 발표 할 수 있습니다. 고객은 Bojur를 통해 IP : port를 찾을 수 있습니다. 이 시점부터 "연결"및 "통신"과 관련하여이 서버는 Bonjour와 더 이상 관련이 없습니다. 내 말은 Bonjour 서비스에 연결하지 않은 것입니다. Bonjour를 통해 서비스를 알리면 다른 사람들이 귀하를 찾을 수 있습니다. 또한 '로컬'Bonjour에서 어떤 서비스가 발표되고 있는지 관찰 할 수 있습니다. –

답변

0

그렇습니다. Bonjour를 이와 같이 사용할 수 있습니다. 예를 들어 Mac OS X의 Apache는 웹 브라우저가 로컬 네트워크에서 웹 서버를 찾을 수 있도록 mod_bonjour입니다. 이는 하나의 서버가 있지만 여러 개의 브라우저가있는 것을 의미 할 수 있습니다.

하나의 한계는 Bonjour가 iOS에서 구성되는 방식이 서버와 클라이언트가 동일한 로컬 네트워크에 있어야한다는 것입니다. 귀하가 설명하는 상황이 Bonjour를 그러한 방식으로 사용하는 것과 호환되는 것처럼 들리지는 않지만, 그렇다고해서 내가 필요하다고 생각하지는 않습니다. 채팅 서버의 DNS 이름을 앱에서 사용할 수 있으므로 모든 앱에서 서버를 검색 할 수 있습니다. 서버는 또한 어떤 클라이언트가 연결되어 있는지를 발견하고 사람들이 서로를 찾을 수 있도록 할 책임이 있습니다. (사실, 그게 대화방이 무엇인지에 대한 것입니다.)

+0

예 이러한 상황의 클라이언트는 동일한 네트워크에 있습니다. 그리고 당신의 대답은 재미 있다고 들립니다. 나는 너의 제안을 파헤쳐. –

0

시작하기에 좋습니다. http://mobileorchard.com/tutorial-networking-and-bonjour-on-iphone/ 나는 chatty의 도움을 받아 동일한 서버와 클라이언트를 구축했다. 하지만 아이폰이 절전 모드로 전환 될 때 소켓 연결이 끊어지면 iOS5에서만 한 가지 문제가 발생합니다. 나는이 문제를 해결할 수 없다. 그래서, 도움을 찾고. :)