Flash Media Server に接続する単純な Flash クライアントがあり、次のようにクライアントをシミュレートできるようにしたいと考えています。
- ポート 1935 で RTMP ストリームに接続しようとして失敗しました。
- ポート 443 で RTMP にフォールバックして失敗し、
- ポート 80 で RTMP にフォールバックして失敗し、最終的には
- ポート 80 経由で RTMPT (HTTP) にフォールバックし、成功します。
これは、たとえば次のように、Flash プレーヤーのデフォルトの動作であると想定されています。
多くの場合、HTTP トンネリングを使用しなくても、多くのファイアウォールを通過するために必要なのはこれだけです。これは、NetConnection オブジェクトに組み込まれた機能によって機能します。RTMP アドレスでポート番号を指定しない場合、Macromedia Flash はポート 1935 への接続を試みます。失敗すると、ポート 443 への接続を試みます。それが失敗した場合は、ポート 80 を試行します。RTMP アドレスでポートを指定しない場合、ポート 1935、443、またはポート 80 にアクセスするためのコーディングは必要ありません。
FMS に接続するときは、クライアント側で netConnection オブジェクトを使用します。接続メソッドのパラメーター内で、使用するプロトコルを設定できます: nc.connect("rtmp://whatever")。その場合、Flash Player はさまざまなポートとプロトコルを循環して自動的に接続しようとすることに注意してください。もちろん、rtmp 部分を変更することで、使用するプロトコルを設定できます。Flash Player は、ポート 1935、次にポート 80 経由で rtmp への接続を試行し、次にポート 80 経由で rtmpt (以下で説明) を試行します。
私は Windows 7 マシンを使用しており、基本的に、Flash がどのポートでも RTMP ストリームに接続できず、RTMPT にフォールバックする環境をシミュレートする方法に関するヒントを探しています。Windows ファイアウォールでは、(通常のポート番号に加えて、TCP は 6、UDP は 17 など) "プロトコル番号" を設定できるようですが、RTMP のプロトコル番号が見つかりません。
この動作を簡単にシミュレートする方法について何か提案があれば、大いに感謝します。よろしくお願いします。