Java ソケット プログラミングを使用して RTMP クライアントを作成する必要があります。私はこの文書を読み、
1 . Java ソケット プログラミングを介してハンドシェイクを正常に実行しました。
次のステップは、「接続」コマンドをサーバーに送信することです。ドキュメントに記載されているように RTMP パケットを作成し、DataOutputStream を使用して出力ストリームに書き込みます。指定された詳細に従って、「接続」packect の本体は次のようになります。
(Invoke) “connect”
(Transaction ID) 1.0
(Object1) { app: “sample”, flashVer: “MAC 10,2,153,2”, swfUrl: null,
tcUrl: “rtmpt://127.0.0.1/sample “, fpad: false,
capabilities: 9947.75 , audioCodecs: 3191, videoCodecs: 252,
videoFunction: 1 , pageUrl: null, objectEncoding: 3.0 }
上記をAMF3でエンコードされたバイトに変換する方法がわかりませんでした。「connect:」、1.0 を AMF エンコードして、OutputStream に書き込むだけでよいでしょうか。また、主要な問題は、オブジェクトをエンコードする方法です (指定されたキーと値のペア)。最初のキーをエンコードしてソケットに書き込み、次に AMF でエンコードされた値を書き込む必要があります。http プロトコルの本体のように、2 つのペアの間に & 演算子を含める必要がありますか? . RnD を深く実行しましたが、このパケットを作成してソケットに書き込むコードが見つかりませんでした。
提案してください。ありがとう。