GKSession sendDataToAllPeers включая отправителя?
У меня есть несколько устройств, подключенных через Wi-Fi с помощью GameKit. У меня есть простой UIAlertView
выскакивает, когда коллеги (клиенты) получают данные. Все, кроме отправителя (сервера), показывают это представление предупреждений при отправке данных, поэтому мне интересно, является ли это ошибкой в моем приложении или это ожидаемое поведение. Если устройство, выполняющее отправку, также является GKSessionModePeer
, я ожидал бы, что оно "выстрелит" своим receiveData:
сообщением, поскольку я отправляю Всем сверстники .
Должен ли я вызывать метод вручную в то же время на устройстве-отправителе? Например, если бы я хотел отправить пакет" GameStart " на 4 телефона, одноранговые узлы вызывали бы startGame:
в методе receiveData:fromPeer:inSession:context:
, когда он получает этот пакет, и отправитель вызывал бы sendDataToAllPeers:
и вызывал бы startGame:
на себя.
Правильно ли это звучит или есть способ включить отправителя в список sendDataToAllPeers:
, чтобы он отвечал Точно так же, как и все подключенные одноранговые узлы?
1 ответ:
Я предполагаю, что под отправителем вы подразумеваете отправителя, т. е. тот, кто посылает данные. (Отправитель = предполагаемый получатель, которым в вашем случае является каждый).
Это ожидаемое поведение. "Все одноранговые узлы" не включают отправителя, и в настоящее время вы не можете включить отправителя в список sendDataToAllPeers:. Ваш план вызова метода вручную на устройстве отправителя в то же время, когда вы отправляете сообщение коллегам, звучит как лучший способ.
Если вы хотите быть уверены, что данные вышли нормально прежде чем что-то сделать с отправителем, вы можете отправить подтверждение от коллег.