Existe uma maneira de determinar se um usuário está usando banda larga ou dial-up

StackOverflow https://stackoverflow.com/questions/753750

  •  09-09-2019
  •  | 
  •  

Pergunta

Temos a obrigação de um cliente para fornecer uma versão "lite" para dial-up e todos os sinos e assobios para um usuário de banda larga.

A solução vai usar Flex / Flash / Java EJB e alguns jsp.

Existe uma maneira para o servidor web para distinguir entre os dois?

Foi útil?

Solução

Você não se preocupam com o tipo de conexão do usuário, você se preocupa com o download velocidade .

Tenha um aplicativo pequeno flash que o download do restante da do flash, e os tempos de quanto tempo leva. Ou uma página HTML que os tempos quanto tempo um download Ajax preciso.

Se o download do aplicativo rico em destaque leva muito tempo, ter a página stub / flash redirecionamento inicialmente transferidos para a página de download lento (ou baixar os nu-ossos piscar aplicativo, ou qualquer outro).

Outras dicas

O mecanismo mais simples e confiável é provavelmente para obter o usuário para selecionar o tipo de conexão a partir de um drop-down. Simples, eu sei, mas pode poupar-lhe um mundo de dor!

Não há nenhuma maneira de distinguir entre uma banda larga ou dial-up como um tipo de conexão, mas você pode fazer um palpite por velocidade de conexão.

Gmail faz isso e fornece um link para uma versão básica HTML de seu serviço se detectá-lo.

imagem HTML básico do Gmail Load
(fonte: nirmaltv. com )

Meu palpite é que há algum javascript polling lado do cliente feito em solicitações de AJAX. Se o tempo de resposta ultrapassa um limite, a opção de mudar for exibido "lite".

A melhor parte sobre esta opção é que você permitir que o usuário escolha se quiser usar a versão lite em vez de forçá-los.

Aqui está um trecho de código curto de um código que tentou algo similar. É em C #, mas é bastante curta e é apenas o conceito de que o de interesse.

Determinar a velocidade de conexão do seu cliente

Claro, eles poderiam ser um problema temporário de velocidade que não tem nada a ver com a conexão do usuário no momento que você teste, etc, etc.

Eu tive um problema semelhante um par de anos atrás e apenas deixar o usuário escolher entre os locais de largura de banda hi e lo. A primeira coisa que eu carregado na página era esta opção, para que eles pudessem seguir em frente rapidamente.

Eu acho que a abordagem típica para isso é só para perguntar ao usuário. Se você não se sentir confiante de que seus usuários irá fornecer uma resposta precisa, eu suspeito que você vai ter que escrever um aplicativo que executa um teste de velocidade no cliente. Normalmente, estes registro de quanto tempo leva o cliente a receber x número de bytes, e usar isso para determinar a largura de banda.

ActionScript 3 tem uma biblioteca para ajudá-lo com esta tarefa, mas acredito que ele requer que você implantar seu aplicativo / flash Flex no Flash Media Server. Consulte ActionScript 3.0 largura de banda nativa detecção para mais detalhes.

@Apphacker (eu comentar em vez de responder se eu tivesse reputação suficiente ...):

Não é possível garantir o inverso, ou -. Tenho Earthlink dial-up, que em breve atualizar para Earthlink DSL (é o que está disponível aqui ...)

Você pode verificar o seu IP e ver se ele resolve / é atribuído a um provedor de acesso discado, como AOL, Earthlink, NetZero. Não seria garantia de que aqueles que não resolver a tal provedor de banda larga são usuários.

você poderia ...

  • perguntar ao usuário
  • executar um teste de velocidade e perguntar ao usuário se o resultado que você encontrou é correta
  • executar um teste de velocidade e esperança de que o resultado encontrado está correto

Eu acho que um teste de velocidade deve ser suficiente.

Se você tiver apenas um grupo de usuários conhecido pequeno, às vezes, é possível determinar a velocidade de conexão pelo ip. (Alguns fornecedores atribuir diferentes sub-redes dial-up / banda larga conexões)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top