Как установить tcp_nodelay в платформе MultipeerConnectivity в iOS 7

Я использую платформу MultipeerConnectivity iOS 7 для передачи сообщений между несколькими устройствами. Могу ли я установить TCP_NODELAY в платформе MultipeerConnectivity, чтобы сообщение проходило с минимальной задержкой.

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

Я хочу минимальную задержку, потому что я должен запустить аудио на двух устройствах одновременно. И если задержка составляет более 100 миллисекунд, то наблюдается задержка в двух аудиозаписях.

Заранее спасибо.

2 ответа

Да, в MultiPeer Framework есть возможность отправки данных в ненадежном режиме. Он отправит данные немедленно, без каких-либо задержек. Но нет гарантии на делиеврей.

Я надеюсь, что это должно работать.

Вы должны запустить аудио одновременно (например, через 0,2 с), всегда будет некоторая задержка, поэтому вы должны синхронизировать часы на обоих устройствах.

--------------------------------------------> Device #1
  |     /\                |              |
  | time |      then send |       audio  |
  | sync |      start     |       starts |
  |      |      time      |       here   |
  \/     |                \/             |
--------------------------------------------> Device #2

В этом случае они начнут аудио одновременно. Не забудьте сохранить свой пинг во время синхронизации (время запуска аудио должно быть больше, чем пинг).

Плюсы:

  • Ваш звук начнется почти одновременно

Минусы:

  • будет задержка (вам понадобится некоторое время, равное ping).
Другие вопросы по тегам