我正在本地networking上设置诊断服务器(Redhat 5.5)。 一个要求是速度testing,networking中的用户可以testing其互联网连接的速度(例如http://speedtest.net/ )。
我给人的印象是他们是我可以使用的开源解决scheme。 我还不确定它是否有所作为,但有时用户可能会通过网页访问速度testing,有时候用户会从我正在构build的Java应用程序中获取数据。
几年前,我刚刚在家里推出了一个非常简单的静态HTML文件,JavaScript和几个JPEG文件。 它只做下载速度检查(不是ping或上传速度检查)。 网页有趣的部分如下:
javascript部分:
<script language="JavaScript" type="text/javascript"><!-- start = 0; initDone = false; testImageSize = 680314; testImageName = 'test_image.jpg'; flippedTestImageSize = 680441; flippedTestImageName = 'flipped_test_image.jpg'; fileSize = testImageSize; fileName = testImageName; document.testimage.src = fileName + '?t=' + start; function startTest () { start = (new Date()).getTime(); if (fileName == testImageName) { fileSize = flippedTestImageSize; fileName = flippedTestImageName; } else { fileSize = testImageSize; fileName = testImageName; } document.testimage.src = fileName + '?t=' + start; } function finishTest () { end = (new Date()).getTime(); secondsTaken = (end - start) / 1000; connectSpeed = (Math.floor((((fileSize * 8) / secondsTaken) / (1024 * 1024)) * 10) / 10); if (initDone) { with(document.testForm){ downloadTime.value = secondsTaken; imageFileSize.value = fileSize; connectionSpeed.value = connectSpeed; } } else { initDone = true; } } //--></script>
表格:
<form name="testForm"> <table style="padding: 5px;"> <tr> <td><input type="button" name="dotest" value="Do Test" onClick="startTest()"></td> </tr> <tr> <td class="lbl">Image download time (s):</td> <td class="inp"><input type="text" name="downloadTime" readonly="true"></td> </tr> <tr> <td class="lbl">Image size (bytes):</td> <td class="inp"><input type="text" name="imageFileSize" readonly="true"></td> </tr> <tr> <td class="lbl">Estimated speed (Mbps):</td> <td class="inp"><input type="text" name="connectionSpeed" readonly="true"></td> </tr> </table> </form>
最后,在页面的某个地方是:
<img name="testimage" src='test_image.jpg' width="400" alt="" onLoad="finishTest()">
虽然我没有必要或有兴趣把它变得更有趣,但是我不认为这样做会有太多的困难。