2011-12-06 7 views
4

私自身のhttpモジュールを書いています(node.jsには1つが含まれています) 静的なバイナリをリクエストしているときにネットモジュール を使用していますバイナリファイルでHTTPレスポンスを生成するにはどうすればよいですか? 私は、テキストファイル(例えばHTMLファイル)のために、まさにそれを行うと、それだけで動作します。..ソケット上でHTTPのバイナリデータを送信するNode.js

+0

あなたは自分でそれを書いているのですか? HTTPリクエスト用のパーサーを作成し、レスポンスに適切なヘッダーがあることを確認する必要があります。あなたが持っているコードを投稿できますか?画像をリクエストしたときにはどういうことが起こりますか?どのようにテストリクエストを送信していますか? – loganfsmyth

+1

これは学習目的のためです... HTTP/1.1パーサーを書いていました.HTMLファイルを送信すると、画像は表示されません。(正しいコンテンツタイプを送信します) – ciochPep

答えて

3

あなたがネットモジュールを使用している場合、あなたはおそらくのようなコードを使用しています。aは何

var server = net.createServer(function (socket) { 
}); 

ソケット?ネットワーク上のデータストリームを表します。オブジェクトで 、ソケットがWriteableStreamあり、ここで続きを読む:http://nodejs.org/docs/v0.6.5/api/streams.html

をあなたがストリームとしてファイルを読み込むための最も簡単な方法は文字列、バッファとして、あるいはReadableStream

などのコンテンツを取得することができ、ファイルを読んでいるとき次の関数を使用します。http://nodejs.org/docs/v0.6.5/api/fs.html#fs.createReadStream

var fileAsAstream = fs.createReadStream(filePath); 

ライトストリームあなたはhttp://nodejs.org/docs/v0.6.5/api/streams.html#stream.pipe機能 は、例えばパイプの機能を使用できるバイナリ読み出しストリームのコンテンツを転送するために

fileAsAstream.pipe(socket); 
関連する問題