2013-11-20 6 views
2

프로젝트를 SignalR v2로 업그레이드 한 후 ondisconnect의 동작이 변경된 것 같습니다. 다른 웹 사이트로 이동하는 경우 google.com에서 ondisconnect가 즉시 호출됩니다 (실행중인 탭을 닫을 때도 마찬가지입니다). 그러나 우리의 웹 프로젝트에서 다른 페이지로 이동할 때, ondisconnect는 훨씬 늦은 시간에 호출됩니다. 타임 아웃이 만료 된 것으로 가정합니다. 우리는 새로운 MVC4 프로젝트와 chatHub 예제를 만들어 Google 크롬 대신 테스트 한 사용자 오류를 제외시킴으로써이 동작을 검증했습니다. 우리의 응용 프로그램은 사용자가 페이지에서 다른 곳으로 이동할 때 (사용자 정리, 즉 chatroom에서 나가기 위해) ondisconnect가 실행되는 것에 크게 의존합니다.프로젝트 내 다른 페이지로 이동할 때 Ondisconnect가 즉시 호출되지 않습니다 (다른 웹 사이트 또는 닫기 탭으로 이동할 때)

의도적으로 설계된 것이며 사용자가 다른 페이지로 이동할 때 즉시 ondisconnect를 설정해야하는 옵션은 무엇입니까? (탭 닫기와 동일)? 기본 타임 아웃/킵 얼라이브 설정은 변경하지 않았습니다. 우리는 beforeunload와 같은 메소드에 의존하지 않아도되기 때문에 이전처럼이 작업을 수행 할 수 있습니다.

미리 감사드립니다.

+0

+1, 우리는 같은 문제를 겪고 있습니다. –

답변

3

나는 이것을 github의 SignalR 팀에 게시했습니다. Halter73은 임시 해결 방법으로 대응했습니다. 자세한 내용은 https://github.com/SignalR/SignalR/issues/2719을 참조하십시오.

추가 : 우리의 프로젝트는 문제를 해결하고있다

window.onbeforeunload = function (e) { 
     $.connection.myHub.connection.stop(); 
    }; 

합니다.