Я реализую программу BlueTooth
и Wifi
на основе чата для iPhone
. Для подключения я использую GameKit
. Но из-за некоторых приложений специальных требований я не могу использовать значение по умолчанию GKPeerPickerController
. Поэтому вместо этого я создал комбо GKSession
и GKSessionDelegate
, чтобы обнаружить сверстников. После того, как они находят друг друга, они могут общаться.GameKit: Каков тип соединения при использовании GKSession без GKPeerPickerController: Решено
Теперь я проверил функциональность чата на трех mac-minis
с использованием simulator
, один тренажер и один iPod
, один iPhone
и один Simulator
. Я могу общаться во всех вышеперечисленных сценариях. Но некоторые, как iPhone
и iPod
не обнаруживают друг друга.
Также мне интересно, какой тип соединения происходит между всеми этими устройствами. Поскольку теоретически GameKit
поддерживает оба, BlueTooth
и WiFi
. Теперь проблема в том, что GKPeerPickerController
можно выбрать между BlueTooth
и WiFi
, (к сожалению, реализация WiFi
нигде не задокументирована.) Это хорошо, но как насчет пользовательского сценария, когда один реализует свои собственные GKSession
10 и GKSessionDelegate
Combo. Когда один создает GKSession
объект, используя только init
метод доступен:
– initWithSessionID:displayName:sessionMode:
только вариант конфигурации это обеспечивает является sessionMode
, но у него есть только три варианта
GKSessionModeServer,
GKSessionModeClient,
GKSessionModePeer,
Ни одна из которых указывает на выбор соединения между Bluetooth
и WiFi
.
Но я отключил bluetooth
на iPod
и протестировали его с mac-mini
это работает, так что я думаю, это с помощью WiFi
. Кроме того, в журнале я получаю следующие строки:
DNSServiceRegister callback: Ref=4c3f3d0, Flags=2, ErrorType=0 name=00XGT0H0A..BTChat1 regtype=_0eilkgh5o2mq17._udp. domain=local.
DNSServiceRegister
и udp
часть заставляет меня думать, общение происходит через TCP/IP
.
Означает ли это, что, когда я начинаю с GKSession
и GKSessionDelegate
метод по умолчанию коммуникации WiFi только, или он поддерживает WiFi
и bluetooth
как в то же самое время (хотя я никогда не получил ни одного указания, что BlueTooth
соединение происходило).
Но GameKit
Предполагается, что в основном около BlueTooth
В порядке? Кто-нибудь может рассказать о том, что именно происходит?
Также вы видели какой-либо образец кода, где кто-то реализовал интерфейс WiFi для GKPeerPickerController
?
Update:
OK Найдено сам. GKSession
и GKSessionDelegate
пользовательские реализации, как я упомянул в вопросе, работают как для bluetooth
, так и для WiFi
.На самом деле у iPhone (JailBroked)
у меня были проблемы с BlueTooth
и, возможно, это предотвращало Gamekit
, чтобы работать должным образом, после жесткой перезагрузки телефона и поворота Airplane
режим выключен, bluetooth
на несколько раз получил bluetooth
, работающий по телефону. Теперь приложение работает нормально как в режимах WiFi
, так и в режиме BlueTooth
.
Hi Pritam, то есть нет способа установить, с каким путем (Bluetooth или Wi-Fi) общаться, правильно? – ZYiOS
@ Дио, да, по крайней мере так было, когда я закодировал эту пьесу, но с тех пор прошло много времени, и я не справился с GameKit. –