GKSession sendDataToAllPeers включая отправителя?


У меня есть несколько устройств, подключенных через Wi-Fi с помощью GameKit. У меня есть простой UIAlertView выскакивает, когда коллеги (клиенты) получают данные. Все, кроме отправителя (сервера), показывают это представление предупреждений при отправке данных, поэтому мне интересно, является ли это ошибкой в моем приложении или это ожидаемое поведение. Если устройство, выполняющее отправку, также является GKSessionModePeer, я ожидал бы, что оно "выстрелит" своим receiveData: сообщением, поскольку я отправляю Всем сверстники .

Должен ли я вызывать метод вручную в то же время на устройстве-отправителе? Например, если бы я хотел отправить пакет" GameStart " на 4 телефона, одноранговые узлы вызывали бы startGame: в методе receiveData:fromPeer:inSession:context:, когда он получает этот пакет, и отправитель вызывал бы sendDataToAllPeers: и вызывал бы startGame: на себя.

Правильно ли это звучит или есть способ включить отправителя в список sendDataToAllPeers:, чтобы он отвечал Точно так же, как и все подключенные одноранговые узлы?

1 2

1 ответ:

Я предполагаю, что под отправителем вы подразумеваете отправителя, т. е. тот, кто посылает данные. (Отправитель = предполагаемый получатель, которым в вашем случае является каждый).

Это ожидаемое поведение. "Все одноранговые узлы" не включают отправителя, и в настоящее время вы не можете включить отправителя в список sendDataToAllPeers:. Ваш план вызова метода вручную на устройстве отправителя в то же время, когда вы отправляете сообщение коллегам, звучит как лучший способ.

Если вы хотите быть уверены, что данные вышли нормально прежде чем что-то сделать с отправителем, вы можете отправить подтверждение от коллег.