2012-02-11 8 views
10

:XHRポーリングと10秒のポーリング期間で"xhr-polling" configはsocket.ioで何をしますか?私はsocket.ioでのNode.jsサーバー持って

var io = require('socket.io').listen(app); 

// assuming io is the Socket.IO server object 
io.configure(function() { 
     io.set("transports", ["xhr-polling"]); 
     io.set("polling duration", 10); 
    }); 

io.sockets.on('connection', function(socket){ 
    console.log('connected: %s', socket.id); 
    ... 
} 

を、この新しい接続は10秒ごとに呼び出されることを意味するのでしょうか?もしそうなら、どうすればユーザーの接続を切断し続けることができますか?私はherokuでnode.jsを実行しています。

答えて

15

xhr-pollingは、空の応答を返す代わりに応答する前に応答がないと受け取ったPOSTのGETでサーバーが10秒間待機することを意味します。したがって、サーバーが10秒後に返す情報がない場合は、空の応答で返答します。 あなたはここで多くを読むことができます:Long polling

を私は個人的にnodejitsu上のアプリケーションでのWebSocketからのフォールバックオプション(Herokuのようにホスティング別のノード)としてXHRポーリングを使用して、それが正常に動作しています。唯一のことは、WebSocketアプリケーションのようにインスタントではなく約3-8秒かかる「接続中」イベントです。

新しいポーリングごとに作成される新しい接続はありません。サーバーに0.5秒ごとにポーリングするのではなく、10秒ごとに1つのGETまたはPOSTしかサーバーに送信されません。 「リアルタイム」アプリケーション。サーバーが10秒以内に応答する場合は、次の応答を準備するために別のポーリングが送信されます。

私はこれがあなたに役立つことを願っています。 良い一日を。

3

socket.ioは、クライアントを自動的に再接続します。

関連する問題