2016-08-25 82 views
0

我正在使用socket.io將通知推送給瀏覽器。 這些通知是由其他瀏覽器的操作觸發的。 我想做一個有時發送通知的後臺任務。 例如,在12:45:21我想向所有連接的用戶發出通知,即使他們什麼都不做。有可能這樣做嗎?是否有可能通過節點socket.io創建後臺任務

+0

請看看[如何提出問題](http://stackoverflow.com/help/how-to-ask)? – NickyvV

+0

在你面前有兩個答案。而且你還沒有迴應,無論他們中的任何一個是否正在工作/也沒有工作......那很糟糕。 – enRaiser

回答

0

當然,這很容易。只需使用標準的Javascript setInterval技術:

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. "); 
相關問題