2016-08-25 11 views
0

ブラウザに通知をプッシュするためにsocket.ioを使用しています。 これらの通知は、他のブラウザからのアクションによってトリガーされます。 時々通知を送るバックグラウンドタスクを作っています。 たとえば、12時45分21秒には、何もしていないとしても、接続しているすべてのユーザーに通知を出したいと思っています。それは可能ですか?ノードsocket.ioでバックグラウンドタスクを作ることは可能ですか?

+0

[よくある質問](http://stackoverflow.com/help/how-to-ask)をご覧ください。 – NickyvV

+0

あなたの前に2つの答えがあります。それらのどれかが働いているかどうかにかかわらず、あなたはまだ応答していません。 – enRaiser

答えて

0

絶対に、簡単です。

var io = require('socket.io')(80); 

setInterval(function() { 
    io.emit('hi!'); 
}, 60000); 

これは、接続されたすべてのクライアントに60秒ごとにメッセージを送信します。特定の時刻の送信を実現するには、上のメソッドを1秒ごとに呼び出すように変更し、その中で現在の時刻とトリガーする時刻を比較します。

0

理想的には可能です。幸運なことに、私はちょうどほぼ同じ状況に投資し始めました。私の腸の感覚はこれをすると言う。

すべてのブラウザから開いている接続が有効である必要があります。これはすべてのページで有効となるdefault.jadeからsocketを操作することで可能です。

//client side code effective in all pages. 
socket = io(); 
socket.emit('join'); 

は、デフォルトのルームに保存します。

socket.on('join', function(json){ 
     socket.join('globalroom'); 
    }); 

したがって、あなたはその部屋に12:45で放出することができます。

io.to('globalroom').emit('msg', "Happy new Year. "); 
関連する問題