Как установить 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).