2013-12-20 6 views
2

현재, node.js에 mysql과 함께 socket.io를 사용하여 모든 클라이언트에게 알림을 보내도록 애플리케이션을 만들었습니다. 그래서 내 mysql 데이터베이스의 모든 변경 사항은 즉시 socket.io를 통해 다중 클라이언트에 통보됩니다. 응용 프로그램 작동 매력.socket.io를 사용하여 긴 폴링을 구현하는 방법은 무엇입니까?

제가 직면 한 문제는 성능 문제와 관련이 있습니다.

내 브라우저가 서버에서 지속적인 푸시 알림을 받으면 내 브라우저의 성능이 느려집니다. I/Client는 데이터베이스 변경시에만 알림을 받아야하며, 서버가 일시 중지 상태 여야하며 나머지 메시지는 자동으로 보내지지 않습니다.

다른 말로하면 긴 폴링 기술을 구현해야합니다.

어떻게 socket.io로 긴 폴링을 구현합니까?

나는 예를 찾기 위해 검색 좀,하지만 난 socket.io 긴 폴링을 구현하는

이 가능 Node.js를에서 socket.io와 MySQL 긴 폴링을 구현하는 데 도움 수있는 것도 발견 ?

그렇다면 예를 들어 누군가 나를 유용한 링크로 리디렉션 할 수 있습니까?

미리 감사드립니다.

답변

7

만 긴 폴링을 사용하는 socket.io를 강제 할 수

io.set('transports', ['jsonp-polling']); 

하지만 긴 폴링은 당신이 찾고있는 솔루션입니다 생각하지 않는다 -을 위해. 사용되는 기본 기술과는 별개의 것이어야합니다. 나는 이런 식으로 뭔가를 할 수 있습니다

function writeToMysqlDb(data) { 
    mySqlDriver.write(data); //whatever you use to write data to MySql 
    socket.emit('dbChanged', data); //send the same data to all connected clients 
}; 

내가 기본 옵션으로 전송을 떠날 것이다 : 는 대한

0

푸시 횟수를 줄이기 위해 매시간 하나의 알림에 상수 푸시 알림을 병합하기 위해 풀을 구축 할 수 있습니다.

+1

하이 넬슨 감사 "웹 소켓, htmlfile, XHR 폴링, JSONP 폴링에 기본값을 전송의" 응답. 어떤 예제가 구현되어야 하는가 ??? 왜냐하면 나는이 nodejs, socket.io와 long polling world에 익숙하지 않기 때문이다. 모든 예제가 나를 도울 것입니다. –