2010-01-18 2 views
5

iPhone에 대한 BlueToothWifi 기반 채팅 프로그램을 구현 중입니다. 연결 목적으로 나는 GameKit을 사용하고 있습니다. 그러나 특별한 요구 사항 응용 때문에 나는 기본값 인 GKPeerPickerController을 사용할 수 없습니다. 그래서 대신 동료를 감지하기 위해 GKSessionGKSessionDelegate 콤보를 만들었습니다. 서로 찾으면 채팅 할 수 있습니다. GameKit : GKPeerPickerController없이 GKSession을 사용할 때 연결 유형은 무엇입니까? 해결됨

는 지금은 simulator, 하나의 시뮬레이터 하나 iPod, 하나 iPhoneSimulator를 사용하여 세 가지 mac-minis에 채팅 기능을 테스트했습니다. 위의 모든 시나리오에서 채팅 할 수 있습니다. 그러나 어떤 사람들은 iPhoneiPod이 어떻게 서로를 탐지하지 못하는지를 알고 있습니다.

또한이 모든 장치간에 연결 유형이 궁금합니다. 이론적으로는 GameKitBlueToothWiFi을 모두 지원하기 때문입니다. 이제 문제는 GKPeerPickerControllerBlueToothWiFi 사이에서 구체적으로 선택하겠습니다. (불행하게도 WiFi의 구현은 어디에서도 설명하지 않습니다.) 괜찮 았지만 자신의 GKSessionGKSessionDelegate 콤보를 구현할 때 사용자 지정 시나리오는 어떻게됩니까? 사람이 사용할 수있는 유일한 init 방법을 사용하여 GKSession 객체를 생성 할 때이 제공

– initWithSessionID:displayName:sessionMode: 

만 구성 옵션은 sessionMode이지만 BluetoothWiFi 사이의 연결 선택을 나타냅니다

GKSessionModeServer, 
    GKSessionModeClient, 
    GKSessionModePeer, 

없음있는 세 개의 옵션

있습니다.

하지만 그것은 작동 iPod에 사용할 수 bluetooth이 있고 mac-mini으로 테스트 그래서 나는이 WiFi을 사용하는 것 같아요. 또한 로그에 내가 행 다음에 얻을 :

DNSServiceRegister callback: Ref=4c3f3d0, Flags=2, ErrorType=0 name=00XGT0H0A..BTChat1 regtype=_0eilkgh5o2mq17._udp. domain=local. 

DNSServiceRegisterudp 부분은 나를 통신이 TCP/IP에 걸쳐 일어나고있다 생각합니다.

그래서 내가 GKSessionGKSessionDelegate로 시작할 때 나는 BlueTooth 연결이 일어나는 것을 하나의 표시를 가진 적이 없어하지만 (통신의 기본 방법은 와이파이가 아니라, 또는 동시에 WiFibluetooth을 모두 지원 않음을 의미 하는가).

그러나 GameKit은 주로 약 BlueTooth 인 것으로 가정합니다. 맞습니까? 정확히 무슨 일이 일어나고 있는지에 대해 상황을 밝힐 수 있습니까?

또한 누군가가 GKPeerPickerController에 대해 WiFi 인터페이스를 구현 한 샘플 코드를 보았습니까?

업데이트 :

OK 그것을 자신을 발견. GKSessionGKSessionDelegate 사용자 지정 구현은 질문에서 언급 한대로 bluetoothWiFi에 모두 적용됩니다.사실 iPhone (JailBroked)에는 BlueTooth과 관련된 몇 가지 문제가 있었으며 Gamekit이 제대로 작동하지 않을 수있었습니다. 하드 재설정 후 Airplane 모드를 켜기로 설정하면 bluetooth을 몇 번 켜고 bluetooth 전화를 사용하게됩니다. 이제 앱은 WiFiBlueTooth 모드에서 정상적으로 작동합니다.

+0

안녕하세요, Pritam, 즉, 통신 할 방법 (블루투스 또는 Wi-Fi) 설정 방법이 없습니다. 맞습니까? – ZYiOS

+0

@Dio 예, 적어도 그 코드를 코딩 할 때의 방법 이었지만 그 이후로 오랜 시간이 걸렸습니다. 그리고 GameKit을 따라 잡지 못했습니다. –

답변

1

GKPeerPicker가 비슷한 방식으로 작동하는지 알고 계십니까? 내 주변 모드를 선택하면 WiFi/블루투스를 통해 연결할 수 있습니까?

인터넷 모드는 TCP/IP를 사용하여 원격 서버에 연결하기위한 것입니다. 감사합니다.