Материал из Скретч Вики
С помощью блоков, для которых необходимо интернет-соединение, можно разработать детектор интернет-соединения. Определение стабильного интернет-соединения может быть полезно в проекте, использующем облачные переменные.
Способ с таймером
Это простой скрипт для определения стабильного интернет-соединения:
когда щёлкнут по зелёному флагу
повторять всегда
если <(перевести (таймер) на (английский v)) = []> , то //пустая строка
. . . //интернет-соединение нестабильно!
иначе
. . . //интернет-соединение стабильное
end
ждать (2) секунд
end
Дополнению перевода нужно интернет-соединение. Без него выдаётся пустая строка, и из-за этого можно определить, пользователь подключен к интернету или нет.
Также дополнение кеширует переводы для убавления нагрузки на сервер, поэтому нам нужно уникальное значение; в данном случае это таймер.
Способ с случайной строкой
Данный способ использует ту же механику, как и способ с таймером, однако вместо таймера используется блок выдать случайное от () до () и список с символами.
Данный способ можно использовать, если в проекте уже используется таймер.
Создайте список (символы::list) и добавьте в него какие-либо случайные буквы для скрипта, а также создайте переменную (строка).
когда щёлкнут по зелёному флагу
повторять всегда
задать [строка v] значение []
повторить (выдать случайное от (1) до (длина списка [символы v])) раз
задать [строка v] значение (объединить (строка) (элемент (выдать случайное от (1) до (длина списка [символы v])) в [символы v]))
end
если <(перевести (строка) на (английский v)) = []> , то //пустая строка
. . . //интернет-соединение нестабильно!
иначе
. . . //интернет-соединение стабильное
end
ждать (2) секунд
Определение пинга
С помощью данного способа и таймера можно также определить пинг (время, необходимое для передачи данных). В данном скрипте пинг будет передаваться в переменную (пинг).
когда щёлкнут по зелёному флагу
повторять всегда
задать [строка v] значение []
повторить (выдать случайное от (1) до (длина списка [символы v])) раз
задать [строка v] значение (объединить (строка) (элемент (выдать случайное от (1) до (длина списка [символы v])) в [символы v]))
end
сбросить таймер
если <(перевести (строка) на (английский v)) = []> , то //пустая строка
. . . //интернет-соединение нестабильно!
задать [пинг v] значение [соединение нестабильно]
иначе
. . . //интернет-соединение стабильное
задать [пинг v] значение (таймер)
end
ждать (2) секунд
Пинг будет измеряться в секундах. По желанию можете преобразовать секунды в миллисекунды:
задать [пинг v] значение ((таймер) * (1000))
| Обратите внимание, что таким образом также проверяется и скорость переводчика, что может значительно повысить пинг. |