views:

373

answers:

8

We have a requirement from a customer to provide a "lite" version for dial-up and all the bells-and-whistles for a broadband user.

The solution will use Flex / Flash / Java EJB and some jsp.

Is there a way for the web server to distinguish between the two?

+3  A: 

The simplest and most reliable mechanism is probably to get the user to select their connection type from a drop down. Simple, I know, but it may save you a world of grief!

Brian Agnew
A: 

You could check their IP and see if it resolves to/is assigned to a dial up provider, such as AOL, Earthlink, NetZero. Wouldn't guarantee that those that don't resolve to such a provider are broadband users.

apphacker
+14  A: 

You don't care about the user's connection type, you care about the download speed.

Have a tiny flash app that downloads the rest the of the flash, and times how long it takes. Or an HTML page that times how long an Ajax download takes.

If the download of the rich-featured app takes too long, have the initially downloaded stub page/flash redirect to the slow download page (or download the bare-bones flash app, or whatever).

tpdi
+1 for point about the real issue being the download speed not the connection type
ChrisF
Thanks! It's all about how you characterize a problem.
tpdi
This answer is all kinds of slick in one tight little bundle. Easy +1.
Beska
+1, same reason as ChrisF... I have a broadband internet connection at home that's often slower (and less reliable) than dialup.
David Zaslavsky
A: 

you could ...

  • ask the user
  • perform a speed test and ask the user if the result you found is correct
  • perform a speed test and hope that the result found is correct

I think a speed test should be enough.

If you only have a small well known user group it is sometimes possible to determine the connection speed by the ip. (Some providers assign different subnets to dial-up/broadband connections)

Johannes Weiß
+3  A: 
Gavin Miller
+1 for loading the 'heavy' site while providing a way to the 'lite' version
voyager
+1  A: 

I think the typical approach to this is just to ask the user. If you don't feel confidant that your users will provide an accurate answer, I suspect you'll have to write an application that runs a speed test on the client. Typically these record how long it takes the client to receive x number of bytes, and use that to determine bandwidth.

Actionscript 3 has a library to help you with this task, but I believe it requires you to deploy your flex/flash app on Flash Media Server. See ActionScript 3.0 native bandwidth detection for details.

Bayard Randel
+1  A: 

Here's a short code snippet from a code who attempted something similar. It's in C#, but it's pretty short and it's just the concept that's of interest.

Determine the Connection Speed of your client

Of course, they could be a temporary speed problem that has nothing to do with the user's connection at the time you test, etc, etc.

I had a similar problem a couple of years ago and just let the user choose between the hi and lo bandwidth sites. The very first thing I loaded on the page was this option, so they could move on quickly.

dommer
+1  A: 

@Apphacker (I'd comment instead of answering if I had enough reputation...):

Can't guarantee the reverse, either--I have Earthlink dial-up, soon to upgrade to Earthlink DSL (it's what's available here...).

RolandTumble
here, now you can comment. +1
Click Upvote
Thanks! I was hanging just below the threshhold for a while there....
RolandTumble