Java Chromium Embedded Framework (JCEF)に基づいて独自にカスタマイズした Web ブラウザーがあり、内部で WebSocket サーバーを実行しているとします。
これで、CustomWebBrowser で実行されている Web アプリは、WebSocket を使用して内部 WebSocket サーバーに接続できるようになりました。
ただし、他の Websocket クライアント (Websocket を使用する別のブラウザーまたはデスクトップ アプリ) を内部 WebSocket サーバーに接続したくありません。
これを行う方法の 1 つは、次の手順に従うことです。
- CustomWebBrowser でシークレットを生成し、そのシークレットをJava-JavaScript ブリッジを使用して JCEF から Web アプリに送信します。
Web アプリは、ハンドシェイク中にそのシークレットを内部 WebSocket サーバーに送信します。次のようになります。
var ws = new WebSocket(myURL, protocols, mySecret);
内部 WebSocket サーバーは、手順 1 でシークレットを生成して送信した CustomBrowser を使用してシークレットを検証できます。
シークレットが検証された場合、ハンドシェイクは正常に完了します。それ以外の場合、websocket 接続は拒否されます。
私の質問は、websocket ハンドシェイク中にカスタム データを送信することは可能ですか?