2016-08-25 2 views
0

브라우저에 알림을 푸시하기 위해 socket.io를 사용하고 있습니다. 이러한 알림은 다른 브라우저의 작업에 의해 트리거됩니다. 가끔 알림을 보내는 백그라운드 작업을 만들고 싶습니다. 예를 들어 12시 45 분 21 초에 아무런 조치도 취하지 않아도 연결된 모든 사용자에게 알림을 보내려합니다. 그렇게 할 수 있습니까?노드 socket.io를 사용하여 백그라운드 작업을 할 수 있습니까?

+0

[질문하는 방법] (http://stackoverflow.com/help/how-to-ask)을 참조하십시오. – NickyvV

+0

앞에 두 개의 답변이 있습니다. 그들 중 누구도 일하고 ​​있는지/또는 일하고 있는지에 관계없이 여전히 응답하지 않았습니다. – enRaiser

답변

0

물론 쉽습니다.

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

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

표준 자바 스크립트 setInterval 기술을 사용하면 연결된 모든 클라이언트에게 60 초마다 메시지가 전송됩니다. 특정 시간 전송을 수행하려면 위의 메소드를 1 초마다 호출하도록 변경하고 내부에서 현재 시간과 트리거하려는 시간을 비교하십시오.

0

이상적으로 가능해야합니다. 운 좋게도 저와 거의 똑같은 상황에 투자하기 시작했습니다. 내 직감이 그러라고.

모든 브라우저에서 열린 연결이 활성화되어 있어야합니다. 이것은 모든 페이지에서 유효 할 default.jade에서 소켓을 조작하여 가능합니다.

//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. "); 
관련 문제