Tes KecepatanJS
Speed-testJS adalah tes kecepatan berbasis JavaScript yang akan memberikan pengguna pandangan yang lebih kaya tentang kecepatan Internet mereka. Memberi pengguna tidak hanya latensi, kecepatan unggah dan unduh serta konteks seputar seluruh pengalaman Internet mereka. Menggunakan data tingkat kecepatan untuk menambahkan metrik kualifikasi ke hasil tes kecepatan standar, pengguna kini akan mengetahui apakah pengalaman mereka buruk, baik, atau hebat
Penyebaran
Untuk penerapan ke server pengujian, lihat README di bawah folder yang memungkinkan .
Pengaturan Server Klien
Aplikasi ini terdiri dari perangkat lunak node/ekspres yang menjalankan server dan javascript/html biasa pada klien. Server mendukung pengaturan ulang titik akhir, komunikasi soket web, interaksi basis data, dan situs web klien.
pelayan
Index.js adalah titik awal aplikasi yang berisi fungsi-fungsi yang diperlukan untuk menjalankan aplikasi. Pengaturan penting dalam file ini adalah:
Alamat IP dan port: server akan secara otomatis mengikat ke alamat ipv4 dan ipv6 dari mesin host tempat server digunakan (mis. app.listen(SERVERPORT,'::');). Port tambahan dapat ditetapkan dengan app.listen(ADDITIONALPORT);
Permintaan Http: konfigurasi http didefinisikan untuk mengizinkan posting http dan permintaan lintas domain.
WebSockets: komunikasi websockets didefinisikan
Titik akhir REST: titik akhir istirahat diekspos untuk menyelesaikan tes kecepatan dan mencakup hal berikut:
- testplan: testplan akan mengembalikan data json yang berisi alamat ipv4, ipv6, dan port yang digunakan untuk titik akhir lainnya dan soket web yang berjalan di server dan alamat ip klien. Juga fitur tes kecepatan tambahan (mis. flag perutean berbasis latensi dapat dikembalikan)
- latensi: mengembalikan pesan pong sederhana
- unduh: data biner berdasarkan permintaan
- unggah: menerima kiriman untuk diunggah
- downloadProbe: mengembalikan ukuran pengujian bandwidth unduhan yang disarankan berdasarkan permintaan
- kalkulator: mengembalikan perhitungan berdasarkan array permintaan yang memberikan statistik pada datum.
- testServer: digunakan dalam perutean berbasis latensi.. ini akan mengembalikan url server uji yang dapat digunakan untuk menemukan server lemari ke klien
Konfigurasi: Konfigurasi umum (port, latencyBasedRouting,...) diatur di index.js. Kustomisasi khusus (mis. database) dapat ditempatkan di bawah folder konfigurasi
- Parameter konfigurasi
- Titik Akhir Istirahat
- soket web
- Folder modul berisi modul khusus yang digunakan untuk aplikasi.
Klien
Klien: Aplikasi klien berada di folder publik dan terdiri dari javascript biasa. Index.html adalah halaman awal default aplikasi dan akan berisi contoh Tes Kecepatan Bandwidth ujung ke ujung. Berikut ini menjelaskan struktur folder aplikasi klien:
- lib: Folder lib berisi file javascript yang digunakan untuk mengukur bandwidth dan pengukuran terkait.
- contoh: Folder contoh berisi file html yang digunakan untuk menguji file javascript pengukuran di folder lib
- Basis xmlhttprequest dan objek websocket
- Rangkaian pengujian yang berbeda menggunakan objek Base xmlhttprequest dan websocket
- tes: folder tes berisi tes unit
- uilib: file javascript khusus untuk UI.
- img: gambar untuk pengujian atau ui
Penerapan manual
Grunt digunakan untuk mengemas file dan folder yang diperlukan untuk menyebarkan aplikasi ke server guna menjalankan aplikasi. Langkah-langkahnya tercantum di bawah ini:
- jalankan paket grunt dari folder root
- tar, zip atau kompres folder dist yang dihasilkan
- menyebarkan dan membuka kompresi di server Anda
- jalankan node index.js dari konsol.
Menjalankan aplikasi
Untuk menjalankan aplikasi secara lokal
- Repo klon
- jalankan npm install dari folder root
- jalankan simpul index.js
- telusuri alamat ip: nomor port (mis. secara lokal adalah http://localhost:port
Basis data
Untuk mengatur dynamodb secara lokal
- Ikuti petunjuk di tautan untuk mengunduh dan menjalankan dynamodb secara lokal http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
- Siapkan AWS secara kredensial secara lokal http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
- Setelah dynamodb diatur secara lokal. Gunakan skrip berikut untuk membuat tabel dan memasukkan data ke dalam dynamodb (jalankan node database.js dari terminal)
- Saat menjalankan skrip, ubah nama tabel dan informasi server