채널 API를 사용하는 애플리케이션이 있습니다. 연결은 항상 살아 있어야하며 (24x7) 채널을 연결 해제 할 때마다 새 채널이 자동으로 생성되는 방식으로 구현했습니다. 대부분의 경우 잘 작동하지만 onError() 메소드가 호출되지 않는 시나리오가 있습니다 (예 : 연결된 WIFI 변경 또는 컴퓨터가 잠자기 상태로 돌아 오는 경우). 내 JS 앱은 채널이 그렇지 않을 때도 여전히 살아 있다고 가정합니다.GAE 채널 API - 자바 스크립트에서 소켓이 살아 있는지 확인하십시오.
내가 생각했던 한 가지 해결책은 메시지를 보내달라고 서버에 핑 (ping)하는 것입니다. Keep Alive처럼. 그러나 이것은 서버에 큰 부담입니다. 예를 들어 매 10 초마다 ping 요청을 보내는 1000 개의 클라이언트는 초당 100 요청과 비슷합니다.
그래서 내가 의도하지 않은 방식으로 연결이 로컬에 있는지 확인하여 내 서버에 DoS 연결을 수행하지 않을지 궁금합니다. .
감사
하지만 서버로부터 요청을 보내서 연결이 살아 있는지 여부를 어떻게 판단 할 수 있습니까? 채널 API는 메시지가 성공적으로 전달되었는지 여부에 관계없이 어떠한 피드백도 제공하지 않습니다. 나는 죽은 채널로 보낼 수는 있지만 그것이 여전히 살아 있다고 가정한다. 고객이 답장을 보내도록 할 수 있습니다. 그런 다음 다시 같은 문제로 돌아갑니다. – budsiya
채널이 살아있을 것으로 기대하십시오. 그러므로 클라이언트는 핑을 정기적으로 기대해야합니다. 시간 초과 기간에 상관없이 채널 메시지를 수신하지 않은 경우 트리거하기 위해 JS에 시간 초과 이벤트를 넣으십시오. 채널이 죽은 경우 클라이언트는 새 채널을 요청해야합니다. – dragonx
가 발생합니다. 귀하의 제안에 감사드립니다. :) – budsiya