ご回答ありがとうございます。
①②③で確認いたしました。
無事、WebSocketにて音声認識ができました。
ありがとうございました。
①~③で通信ができていますので、④については急いでいません。
それで、確認いたしましたところ、通信の手順は、
① HTTPプロトコル上 Authorization: Bearer xxx で 認証、WebSocketへアップグレード
② WebSocketハンドシェイク
③ PCM音源チャックをバイナリーフレームで転送(4KBチャンクで送信しました)を繰り返し
④ テキストフレームで、{"command": "recog-break"} を送信
⑤ 少し開けてサーバー側より音声認識結果が送信されてくる
⑥ ★サーバー側よりWebSocketのCLOSEフレーム(OPCODE=0x8)が送信されてくる
となりました。
⑤の結果受信直後に、サーバー側より⑥のCLOSEフレームが送信されてきてしまい
WebSocketのクローズ状態となってしまい、それ以降、同一WebSocketセッションを利用
しての次の音声の塊りの送信を継続することができません。
従って、次の音声を送信するためには、WebSocket切断後、①~再度行わなければなりませんでした。
WebSocket利用の利点(意味)は、
HTTP-RESTでは、一回一回の音声認識の呼び出し事にTCPセッションの構築および認証をしなければならない
(従って、ネットワーク遅延=RTTの影響 や、認証にかかる処理時間で、音声認識完了までの応答時間が長くなってしまう)
が、
WebSocketプロトコルは、一度セッションを開通し、そのセッションを維持し、データのやり取りを継続的に行うことを
目的としたプロトコル(その為、TCPセッション構築や認証が一回のみとなり、応答時間が早くできる)と認識しています。
ただし、今回のWebSocketの利用では、一回の音声認識後にWebSocketがCLOSEされてしまい、
WebSocketの利点が享受できません。
この、CLOSEフレームが送信され、連続して音声認識が1つのセッションで出来ない(仕様?)は、
回避方法(CLOSEフレームが送信されず、WebSocketが維持できる)、もしくは、仕様変更の予定等はありませんでしょうか?
何卒よろしくお願いします。