Testing Bandwidth with new TSNet Functions
Charles Warwick
charles at techstrategies.com.au
Thu Nov 16 05:19:19 EST 2017
Have a look in the dictionary at the tsNetSetTimeouts command.
In particular, the last two parameters allow you to define a minimum transfer speed so that if a transfer falls below that speed, tsNet will abort the connection.
For example, if you issue the following command:
tsNetSetTimeouts 30, 0, 300000, 60000, 30, 10000
Then tsNet will abort any connection that is transferring at a rate slower than 10000 bytes per 30 seconds.
Cheers,
Charles
> On 16 Nov 2017, at 5:28 am, Ralph DiMola via use-livecode <use-livecode at lists.runrev.com> wrote:
>
> Sannyasin,
>
> This is what I'm going to try to deal with the moving in/out of services issues. I have not done this yet but will try in the next week or 2.
>
> 1) Talk to my web service and see if there is a reasonably fast connection.
> 2) If so then use asynchronous TSNet to download data in the background with a callback.
> 3) Set a timer to keep checking the latency of the web service every second or so until the data transfer is complete.
> 4) Cancel the timer in the callback when TSNet completes.
> 5) If at any time during the TSNet transfer the ping to the server is too slow then cancel the transfer and notify the user the data connection is either too slow or nonexistent at this time.
>
> That's all I got....
>
> Ralph DiMola
> IT Director
> Evergreen Information Services
> rdimola at evergreeninfo.net
>
>
> -----Original Message-----
> From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of Sannyasin Brahmanathaswami via use-livecode
> Sent: Wednesday, November 15, 2017 12:52 PM
> To: How LiveCode
> Cc: Sannyasin Brahmanathaswami
> Subject: Testing Bandwidth with new TSNet Functions
>
> Someone suggested we could test bandwidth by getting the milliseconds before calling a ping.txt file on our server (contains one word "true") and then check the milliseconds after getting the result and we might use this to determine if the bandwidth was sufficient for streaming content from the web server.
>
> Some very, very big "million dollar" apps are surprisingly "brutal" about this… Spotify, for example, even if I am on 3G and able to get a web page on Safari in my iPhone 7… will simply throw up It's broken connection icon (pretty ugly, whole screen display) and not even bother to "say anything" to the user.
>
> FlipBoard, the "super access to all the publications in some large universe" simply fails on startup if you are offline when you boot, they don't even give the user the courtesy of a notification that they are off line. OK well I take that back.. not at least they tell you to turn off airplane mode… but if on super low 3G the app just becomes non-functional stopping cold on the splash screen, again, not even bothering to tell the user anything.
>
> Our SivaSiva app has a mix of content resident in the app and content we call dynamically, so I need a more robust/gracefulway to deal with users walking from 4 bars strong LTE at the coffee shop to 1 blip 3G connection as they walk down the street to the bus, and then back up with 5bars Wi-Fi at home or office.
>
> Currently my ping-the-server method is to see if I can get the ping file, but fetching a ping.txt with only 4 chars data, tends to work, even in low bandwidth situations, this "fools" the app into thinking it has a connection, but if they try to then look at a video in the browser widget from YouTube, or load an image heavy page (our blog) or call some painting/artwork into an image object… the browser widget just "goes white" -- (a bug IMHO), because I can/do put up a loading gif on the card, but the browser widget takes over and "hangs on blank" waiting for the GET connection go pull enough data to start rendering and I have no way to tell the user their bandwidth is too low. So this just make the app look like it failed or is "super slow."
>
> That's the back story: I know TS Net has some functions along these lines, before I dive in from ground zero and flail around this issue, can anyone share what they are using/doing to deal with variable bandwidth? What is working for you and a few snippets would be greatly appreciated.
>
> Brahmanathaswami
> www.himalayanacademy.com<http://www.himalayanacademy.com> Get the SivaSiva App today (for iPhone and iPad)
> https://itunes.apple.com/us/app/sivasiva/id1271260502?mt=8
> (Android Pending HQ's Solution to some Engineering Issues)
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list