2011年5月20日金曜日

RtmpClientの使い方その2.5 HandShakeがこける。

やっと週末です。

今週の情報
liverepeaterのプログラムでつかったRTMPClientの拡張ですが、FlashMediaServerにつなぐとHandShakeこけるっぽい。
理由は「Red5のOutboundHandshakeの実装が適当」だからです。
すみません。適当ではなかったです。
詳細は文末

HandShakeを動作させるときに、Clientから3回、Serverから3回メッセージを送信するわけですが、Clientからの2回目のメッセージの中にプレーヤーが正常であるか確認するための暗号化されたキーをいれてないといけないっぽいです。
主にメンテナンスされているInboundHandshake(サーバー側実装)では、しっかり確認するようにつくられているのに、OutboundHandshake(クライアント側実装)では処理が抜け落ちてるようです。

実際にRed5のサーバーにRtmpClientをつかった実装の接続を実施すると、コンソール上に不正なクライアントがどうのこうのというメッセージがでてきます。
ぱぱっと直してRed5サーバーに有効なクライアントと判定させて、FlashMediaServerにつないで動作確認してみたいところです。


接続できない理由(追記)
Rtmpe用の接続としてちゃんとバージョン9以降用の接続が準備されていました。この方法で接続させないと、SHA128による暗号化したデータの追加がない状態でHandshakeを実行しようとするので、不正なプレーヤーと判定されるようです。

詳細は明日にでも書きます。

0 件のコメント:

コメントを投稿