Назад | Перейти на главную страницу

Модуль проверки скорости на базе Linux с открытым исходным кодом

Устанавливаю диагностические серверы в локальных сетях (Redhat 5.5). Одно из требований - это проверка скорости, при которой пользователи в сети могут проверить скорость своего интернет-соединения (например, http://speedtest.net/ ).

У меня сложилось впечатление, что это решения с открытым исходным кодом, которые я могу использовать. Я пока не уверен, имеет ли это значение, но иногда пользователи могут получать доступ к тесту скорости через веб-страницу, а иногда пользователи получают данные из приложения Java, которое я создаю.

Несколько лет назад я просто накатил домой очень простой файл со статическим html файлом, javascript и парой jpeg. Он проверяет только скорость загрузки (а не пинг или проверку скорости загрузки). Интересные части веб-страницы следующие:

Часть 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()">

Хотя у меня нет ни потребности, ни интереса в том, чтобы делать его более привлекательным, я бы не подумал, что было бы слишком сложно сделать страницу, на которой были бы дополнительные звонки / зуммеры ...