スピードテストJS
Speed-testJS は JavaScript ベースの速度テストであり、ユーザーにインターネット速度の詳細なビューを提供します。ユーザーに遅延だけでなく、アップロードとダウンロードの速度、インターネット エクスペリエンス全体のコンテキストを提供します。速度層データを使用して標準速度テスト結果に適格な指標を追加することで、ユーザーは自分のエクスペリエンスが劣っているか、良好であるか、優れているかを知ることができるようになります。
導入
テストサーバーへのデプロイについては、 ansibleフォルダーの README を参照してください。
クライアントサーバーのセットアップ
アプリケーションは、サーバーを実行するノード/Express ソフトウェアとクライアント上のプレーンな JavaScript/HTML で構成されます。サーバーは、リセット エンドポイント、Web ソケット通信、データベース インタラクション、およびクライアント Web サイトに電力を供給します。
サーバ
Index.js は、アプリケーションを実行するために必要な関数が含まれるアプリの開始点です。このファイルの重要な設定は次のとおりです。
IP アドレスとポート: サーバーは、展開先のホスト マシンの ipv4 および ipv6 アドレスに自動的にバインドします (つまり、app.listen(SERVERPORT,'::');)。さらに、app.listen(ADDITIONALPORT) を使用してポートを割り当てることができます。
HTTP リクエスト: http 構成は、http ポストとクロスドメインリクエストを許可するように定義されています。
WebSocket: WebSocket 通信が定義されています
REST エンドポイント: 残りのエンドポイントは、速度テストを完了するために公開されており、次のものが含まれます。
- testplan: testplan は、サーバーおよびクライアントの ipAddress で実行されている残りのエンドポイントと WebSocket に使用される ipv4、ipv6 の IP アドレスとポートを含む json データを返します。また、追加の速度テスト機能 (つまり、遅延ベースのルーティング フラグを返すことができます)
- レイテンシー: 単純な Pong メッセージを返します。
- ダウンロード: リクエストに基づいたバイナリ データ
- アップロード: アップロード用の投稿を受け入れます
- downloadProbe: リクエストに基づいて推奨されるダウンロード帯域幅テスト サイズを返します。
- 計算機: データに関する統計を提供するリクエスト配列に基づいて計算を返します。
- testServer: 遅延ベースのルーティングで使用されます。クライアントにクローゼット サーバーを見つけるために使用できるテスト サーバーの URL を返します。
構成: 一般的な構成 (ポート、latencyBasedRouting など) は、index.js で設定されます。特定のカスタマイズ (データベースなど) を config フォルダーの下に配置できます。
- 設定パラメータ
- 残りのエンドポイント
- Webソケット
- Modules フォルダーには、アプリケーションに使用されるカスタム モジュールが含まれています。
クライアント
クライアント: クライアント アプリケーションはパブリック フォルダーに存在し、プレーンな JavaScript で構成されます。 Index.html はアプリケーションのデフォルトのスタート ページで、帯域幅速度テストのエンドツーエンドの例が含まれています。クライアント アプリケーションのフォルダー構造を次に示します。
- lib: lib フォルダーには、帯域幅および関連する測定値の測定に使用される JavaScript ファイルが含まれています。
- 例: サンプルフォルダーには、lib フォルダー内の測定 JavaScript ファイルをテストするために使用される HTML ファイルが含まれています。
- 基本の xmlhttprequest および WebSocket オブジェクト
- 基本の Base xmlhttprequest オブジェクトと WebSocket オブジェクトを使用したさまざまなテスト スイート
- test: test フォルダーには単体テストが含まれています
- uilib: UI に固有の JavaScript ファイル。
- img: テストまたは UI 用の画像
手動展開
Grunt は、アプリケーションを実行するサーバーにアプリケーションをデプロイするために必要なファイルとフォルダーをパッケージ化するために使用されます。手順は以下のとおりです。
- ルートフォルダーからgruntパッケージを実行します
- 結果として得られる dist フォルダーを tar、zip、または圧縮します
- サーバーに展開して解凍する
- コンソールからノードindex.jsを実行します。
アプリケーションの実行
アプリケーションをローカルで実行するには
- リポジトリのクローンを作成する
- ルートフォルダーからnpm installを実行します
- ノードindex.jsを実行する
- ipaddress:port 番号を参照します (つまり、ローカルでは http://localhost:port になります)
データベース
dynamodb をローカルに設定するには
- リンクの手順に従って、dynamodb をローカルにダウンロードして実行します http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
- AWS 認証情報をローカルで設定する http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
- dynamodb がローカルにセットアップされたら。次のスクリプトを使用してテーブルを作成し、データを dynamodb に挿入します (ターミナルからノード database.js を実行します)。
- スクリプトの実行中にテーブル名とサーバー情報が変更されます