2

node.jsと、後で新しいデータを送信するためにhttp接続を開いたままにしておく可能性を試しています。一方向ソケットのように。

私は次のnode.jshttpサーバーを持っています:

var http = require("http");

var s = http.createServer(function(req,res){    
    var i = 0;
    res.writeHead(200,{'content-type': 'text/plain'});
    var iv = setInterval(function(){        
        res.write((i++)+"");
        if(i == 50){
            clearInterval(iv);
            res.end("");

        }
    },1000);
});
s.listen(8000);

Firefoxでこのサーバーにリクエストを送信すると、番号50に達するまで、毎秒新しい番号が取得されます。

Chromeでは、50秒待ってから、すべての数値を一度に表示します。ChromeでFirefoxと同じ動作を実現するにはどうすればよいですか?

4

2 に答える 2

2

私は答えを見つけました:

Google Chrome とストリーミング HTTP 接続?

ストリーミングを有効にするために最初に大量のバイトを送信しなければならないのは奇妙ですが、うまくいきます。

私のクロムは最初に正確に1024バイトを必要とします。

アップデート

または、コンテンツ タイプを text/javascript に設定することもできます。するとすぐにストリーミングが始まります!

于 2011-03-24T14:38:25.697 に答える
0

ブラウザは、部分的な ajax 応答の機能を実装する必要はありません。Google を見てください。この問題には、ブラウザごとにかなり異なる回避策がたくさんあります。

于 2011-03-24T14:23:58.997 に答える