WebSocket サーバーを JavaScript (Deno) で書く
この例では、 Deno を使用して WebSocket API サーバーを作成する方法を、付随するウェブページと共に示します。
Deno は JavaScript ランタイムで、 TypeScript のコンパイルとオンザフライでのキャッシュに対応しています。 Deno はフォーマッター、リンター、テストランナーなどを持ち、また多くのウェブ API も実装しています。ウェブ標準に準拠するために、 Deno 固有の API はすべて Deno 名前空間の下に実装されています。
Deno のウェブサイトでは、 Deno のインストール方法を提供しています。
執筆時点での Deno のバージョンは 1.36 です。
コード
コードはサーバー用とクライアント用の 2 つのファイルに格納します。
サーバー
main.js ファイルを作成します。このファイルにはクライアントに HTML を提供する単純な HTTP サーバーのコードを格納します。
Deno.upgradeWebSocket() は接続をウェブソケット接続にアップグレードします。これはプロトコルアップグレードメカニズムで詳しく説明されています。
Deno.serve() は、 Deno.listen() と Deno.serveHttp() を基盤に使用し、 HTTP サーバーを簡単に設定するための上位インターフェイスです。これがなければ、コードは次のように見ていくことになります。
クライアント
index.html ファイルを作成します。これは、接続が確立された後、 5 秒ごとにサーバーに ping を送信するスクリプトを呼び出します。また、次のマークアップが含まれている必要があります:
コードの実行
これら 2 つのファイルを用いて、 Deno を使用してアプリを実行します。
Deno では、ホストマシン上でアクセスするための明示的な権限を要求します。
--allow-net=0.0.0.0:80はアプリが localhost を 80 番ポートで使用することを許可します。--allow-read=./index.htmlはクライアントが HTML ファイルにアクセスできるようにします。