8

MongoDB(GridFS)に保存したMP3をストリーミングする音楽ウェブアプリを作成しています。

私の質問:http範囲のサポートを追加して、バッファを待たずにオーディオファイルのストリーミングを1/2まで開始できるようにするにはどうすればよいですか。

GridFSがXバイト(Xバイト)の読み取りをサポートしていることは知っているので、基本的には、nodejsにバイトX〜Xのみが必要であることを理解させる方法を知る必要があります。

ありがとう!

4

1 に答える 1

12

クライアントはRange、絶対開始バイトと終了バイトを指定するヘッダーを送信し、その後にファイルの合計長または「*」を送信します。

例:

  . The first 500 bytes:
   bytes 0-499/1234

  . The second 500 bytes:
   bytes 500-999/1234

  . All except for the first 500 bytes:
   bytes 500-1233/1234

  . The last 500 bytes:
   bytes 734-1233/1234

206サーバーは応答コード(部分的なコンテンツ)を返すContent-Length必要があり、送信されるデータの量のみである必要があります。

範囲が間違っている場合、サーバーはのフィールドで416(要求された範囲が満たされない)を返すか、範囲の要求を無視してファイルの本文全体でを返す必要があります。Content-Rangebytes */*200

Accept-Rangesサーバーは、受け入れられた範囲単位の値(この場合は)を含むフィールドも送信する必要がありますbytes。ただし、範囲単位は、任意のカスタム範囲単位にすることができます。

ソース:rfc2616

于 2012-01-02T02:04:17.277 に答える