내 응용 프로그램에서 클라이언트는 브라우저에서 Javascript 함수 집합이며 일부 작업 (예 : 클립 재생)을 수행합니다. XmlHttpRequest를 사용하여 서버와 통신합니다. 그러나 서버는 다른 방법으로 클라이언트를 방해하지 않으므로 갑자기 연결을 닫을 수 있습니다. 클립을 재생하는 동안 클라이언트가 연결을 종료했음을 감지하여 메시지를 인쇄하고 페이지를 지울 수 있습니까? 도움을 주시면 감사하겠습니다. 감사합니다, Anil클라이언트 측 Javascript가 클라이언트가 작동하는 동안 서버가 HTTP 연결을 닫으면 감지 할 수 있습니까?
답변
서버가 인 경우 클라이언트가 연결이 닫혔 음을에게 알릴 수 없습니다. 그러나 제안 된 폴링 방법은 통지가 효율적일만큼 효율적이지 않습니다.
NEXT Get 요청시 클라이언트가 해당 세션이 유효하지 않다는 것을 지정하여 해결했습니다.
이것은 URL 재 작성으로 구현되었습니다. Javascript 기능에서 보낸 각 요청에 "jsessionid = [id]"를 추가합니다. 서블릿은 현재 세션 ID를 저장합니다.
아마도 XmlHttpRequest 객체를 폴링 할 수 있으므로 잠시 동안 하트 비트를 보내어 연결이 닫혔는지 확인하십시오. 그렇지 않으면 서버는 클라이언트에게 연결을 닫으라는 신호를 보내야합니다.
클립이 클라이언트로 스트리밍되는 경우 클립 만 제공하면됩니다.
그러나 클립이 다운로드되고 브라우저를 통해 재생 된 것처럼 보입니다. 이 경우 CookieOfFortune에서 설명한대로 워치 독 접근법을 사용하는 것이 가장 좋습니다. 정기적으로 서버를 폴링하고 (1 초에 1 회 정도) 작은 확인 메시지로 응답하도록하십시오. 연결이 닫히면 서버가 부정적인 수단으로 응답하게하십시오.
혜성과 같은 시스템을 사용하지 않으면 서버가 세션 종료를 나타내는 메시지를 '보내도록'하기가 어렵습니다.
클라이언트가 클립을 다운로드하자마자 원하는대로 재생할 수 있습니다. 불행히도 스트리밍 방식으로 전환하는 것 외에는이를 막을 방법이 없습니다. 콘텐츠를 보호하는 것이 우선 순위라면이 변경을 제안하십시오.
AFAIK, Javascript는 단일 스레드입니다. 등록 할 수있는 일종의 예외 또는 콜백이 있습니까? 내가하고 싶은 일은 연결이 닫힐 때 브라우저를 지우고 지우는 것입니다. 아마도 세션 ID가 작동 할 것입니다. 나는 그것을 시도하고 다시 게시한다. –
- 1. 서버가 연결 해제되면 클라이언트가 어떻게 정상적으로 감지 할 수 있습니까?
- 2. Flex 클라이언트가 BlazeDS 대상에서 연결을 끊을 때 (서버 측) 감지
- 3. TIBCO EMS 서버가 재 연결을 관리합니까? 아니면 클라이언트가 있습니까?
- 4. NLB에서 서버가 작동하는 동안 작동하지 않는 응용 프로그램 감지
- 5. 사용자의 브라우저가 gzip을 지원하면 JavaScript가 JavaScript를 감지 할 수 있습니까?
- 6. HTTP 클라이언트가 HTTP 클라이언트에서 깨진 네트워크 연결을 감지하는 HTTP 서버
- 7. 클라이언트 JavaScript가 자체 HTTP 프록시를 사용할 수 있습니까?
- 8. 연결을 일찍 닫으면 웹 메서드 호출은 어떻게됩니까?
- 9. JavaScript가 열린 창 위치가 바뀌는 것을 감지 할 수 있습니까?
- 10. Eclipse에서 서버가 시작되었음을 감지 할 수 없습니다.
- 11. 서버가 필요없는 클라이언트 측 (자바 스크립트) 그래프 라이브러리가 있습니까?
- 12. ASP.NET에서 클라이언트 측 DOM 변경 감지 서버 측 : 가능합니까?
- 13. PHP는 서버가 종료 될 때를 감지 할 수 있습니까?
- 14. node.js http 서버, 클라이언트 연결이 끊어 졌을 때 감지
- 15. 웹 서비스에서 클라이언트 연결 끊기 감지
- 16. JavaScript가 활성화되어 있는지 감지
- 17. xmpp 서버의 클라이언트가 다른 클라이언트와 서버의 연결을 끊을 수 있습니까?
- 18. Tomcat 서블릿에서 클라이언트 연결 끊김을 감지 했습니까?
- 19. 원격 서버가 연결을 닫음
- 20. HTTP를 사용하여 서버가 클라이언트가 클라이언트 브라우저에서 콘텐츠를 요청하지 않고 콘텐츠를 업데이트 할 수있게하는 방법이 있습니까?
- 21. JavaScript가 제 3 자 도메인에서 XML 데이터를로드 할 수 있습니까?
- 22. Silverlight 서버 측 감지
- 23. Wcf 클라이언트의 최대 연결을 무시하고 클라이언트 측 제한을 방지합니다.
- 24. Conformant HTTP 1.1 서버 및 클라이언트 측 연결 반 폐쇄
- 25. 특정 HTTP 메소드에서만 작동하는 컨트롤러 메소드를 적용 할 수 있습니까?
- 26. 클라이언트 측과 서버 측 모두에서 Java 소켓을 닫을 수 있습니까?
- 27. 아직 HTTP/1.0 클라이언트가 있습니까?
- 28. 클라이언트 측 파이썬은 스레드를 사용할 수 있습니까?
- 29. Windows XP에서 작동하는 Perl memcached 클라이언트가 있습니까?
- 30. Ajax를 사용하여 클라이언트 측 파일을 조작 할 수 있습니까?
답장을 보내 주셔서 감사합니다. 하지만 Javascript는 단일 스레드입니다. 등록 할 수있는 일종의 예외 또는 콜백이 있습니까? 내가하고 싶은 것은 연결이 닫힐 때 브라우저를 지우고 지우는 것입니다. –
예, 자바 스크립트로 타이밍 이벤트를 생성 할 수 있습니다. http://www.devshed.com/c/a/JavaScript/Using-Timers-in-JavaScript/ – CookieOfFortune