Задать вопрос
romasemenov
@romasemenov
Предприниматель

Swift iOS Как измерить скорость соединения?

Как реализовать измерение скорости соединения как в приложении Speed test?

Необходимо сделать, что измерение выполнялось пока пользователь не нажмет кнопку Стоп, до этого момента скорость соединения должна отображаться и выполняться анимация стрелки.
Представляю, что должен быть некий объект, который отправляет пакеты и когда он их получает viewcontroller должен обновляться. Как это сделать и при этом, чтобы измерение было продолжительным, не представляю.

Буду благодарен, если поделитесь соображениями и покажите основные идеи в коде.
  • Вопрос задан
  • 521 просмотр
Подписаться 2 Средний 2 комментария
Решения вопроса 1
doublench21
@doublench21 Куратор тега Swift
Если делать надёжно, можно взять всем известный ipef3, исходники на Си благополучно находятся здесь https://github.com/esnet/iperf
Пишите простую обёртку на Swift с нужными Вам типами измерений над этой библиотекой. (Это делается очень легко, информации куча)
Ну собственно теперь подключается свою обёртку на Swift(import MySwiftIperf) и начинаете измерять.

Если делать проще, то можно качать обычным URLSession некий большой файл. У URLSession есть отличный делегат, в котором можно глянуть текущую порцию скаченных данных. Этого достаточно для измерения скорости. Начальное время, текущее время, текущее кол-во скаченных байт, всё это делим на нужное измерение в кб/мб/...

P.S. Красивая стрелка это тема для отдельного разговора.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы