Можно ли определить, поступает ли входящий запрос от сотовых данных или из WIFI / LAN? [Дубликат]

Найдено эта ссылка - перейти к разделу наследования

override func encode(to encoder: Encoder) throws {
    try super.encode(to: encoder)
    var container = encoder.container(keyedBy: CodingKeys.self)
    try container.encode(employeeID, forKey: .employeeID)
}

Для декодирования я сделал это:

 required init(from decoder: Decoder) throws {

    try super.init(from: decoder)

    let values = try decoder.container(keyedBy: CodingKeys.self)
    total = try values.decode(Int.self, forKey: .total)
  }

private enum CodingKeys: String, CodingKey
{
    case total

}

19
задан Chris 28 July 2012 в 15:00
поделиться

4 ответа

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

Что может сделать с JS - простая полоса пропускания тестирование. Загрузите файл с известным размером с помощью XHR и определите необходимое время.

Платная модель соединения - это абсолютные частные данные. Он также не будет отправлен на серверы в Интернете и не будет доступен для загруженного веб-сайта. Если вам нужна эта информация, чтобы предложить клиенту настраиваемое приложение, запросить пользователя напрямую. Он скажет вам, хочет ли он.


Но подождите. Последние Chrome и Firefox могут быть установлены (пользовательские предпочтения), чтобы предоставить данные об объекте experimental navigator.connection .

Кроме того, для разработки приложений Metro Windows предлагает такую ​​информацию на Windows.Networking.Connectivity API , см. этот учебник .

5
ответ дан Bergi 26 August 2018 в 16:34
поделиться

Старый вопрос, но в поисках моих собственных целей я нашел это - мне еще нужно попробовать его, поэтому YMMV: https://github.com/ashanbh/detectClientSpeed ​​.

Основополагающее понятие измерения времени для загрузки актива для получения информации о полосе пропускания является субъективным и не обязательно последовательным, но за исключением встроенного API платформы для iOS / Android, это не плохой вариант. Более легкая альтернатива может заключаться в том, чтобы измерять время ping на что-то вроде google.com.

1
ответ дан Chrispy 26 August 2018 в 16:34
поделиться

Возможно, вы приближаетесь к нему неправильно. Посмотрите на модель Gmail. У них есть богатый клиент, который пользователь может отключить, если страница занимает много времени для загрузки. Стандартный клиент намного легче и использует более «традиционный» веб-дизайн. Пытаться автоматически обнаружить вещи, которые не предназначены, может привести вас к очень глубокой кроличьей дыре.

3
ответ дан Gerard Sexton 26 August 2018 в 16:34
поделиться

См. navigator.connection (префикс). Этот API предоставляет информацию о пропускной способности клиента.

13
ответ дан Rob W 26 August 2018 в 16:34
поделиться
Другие вопросы по тегам:

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