2011-12-17 20 views
1

HTTPモジュールを使用せずに、net node.jsモジュールの上にHTTPシンプルサーバを作成します。node.js HTTPリクエストの解析(ネットモジュールを使用)

私はlocalhost:portでリッスンしているサーバーをソケットを開いています。

socket.on('data', function(data){ 
    clientMsg += data; 
}); 

ブラウザにアドレスを入力すると、GETリクエストがclientMsgに表示されます。私が使用し、応答を返すためには

socket.on('close', function(){ something response generating here}); 

をしかし、それは私がESCをクリックするか、ブラウザでSTOP一度だけ応答を送信するので、これはうまく機能していません。

質問は、ブラウザがメッセージの送信を完了し、接続を閉じることなく応答を待っていることをどのように知ることができますか?

答えて

2

閉じるのではなくイベント接続を使用します。 Event: 'connection'

はまた、このようなサーバー用に文書化された構造である:返信用

var net = require('net'); 
var server = net.createServer(function(c) { //'connection' listener 
    console.log('server connected'); 
    c.on('end', function() { 
     console.log('server disconnected'); 
    }); 
    c.write('hello\r\n'); 
    c.pipe(c); 
}); 
server.listen(8124, function() { //'listening' listener 
    console.log('server bound'); 
}); 
+0

おかげで、私はそれだけでなく見て、理解できませんでした、c.pipe部分、それをしませんデータのストリームを終了した後に入力を送信しますか? また、Firefoxで127.0.0.1:8124に接続すると、HTTPリクエストが表示されますが、Firefoxはまだデータを取得しようとしています – user1066986

+0

c.write( 'hello \ r \ n');ソケットをハロートラップで送信します。パイプはちょっと違うhttp://nodejs.org/docs/v0.6.6/api/all.html#stream.pipe –

+0

パイプメソッドをテストしています。私はそれが答えであることを完全に理解したら受け入れます。ありがとう。 – user1066986

関連する問題