2011-01-18 2 views
4

나는 긴 폴링과 영원한 프레임을 포함하여 일부 혜성 기법을 사용하고 있습니다. 크로스 하위 도메인에 대해 iframe을 사용하고 있습니다. 이러한 기술을 구현하는 동안 내가 겪었던 한 가지 문제는 사용자가 페이지를 새로 고치거나 다른 페이지로 이동하여 새로운 요청을하게되면 혜성 연결이 이전 페이지에서 계속 열리게됩니다. 내 서버 (토네이도)는 절대로 연결을 끊지 않으며, 제한된 wireshark 기능에서 TCP 핀 패킷을 보지 못했습니다. 그러나 브라우저를 닫으면 해당 지점에서 소켓이 닫힙니다.버려진 열려있는 연결에 대한 혜성 문제

이러한 버려진 열린 연결은 정당한 이유로 서버 쪽 메모리를 사용하고 있습니다. 또한 서버가 열려있는 소켓에 메시지를 보내고 IE가 "해제 된 스크립트에서 코드를 실행할 수 없습니다"라는 오류 메시지를 올바르게 표시하면 문제가 발생합니다. 따라서 IE는 멀리 떨어진 곳에서 탐색 된 이전 창에서 코드를 실행하려고합니다. 다른 사람들이이 문제를 어떻게 다루고 있습니까? 어떻게 든 연결을 끊기 위해 onbeforeunload를 사용해야합니까?

답변

1

언제든지 연결을 다시 시작하고 클라이언트 측에서 연결을 다시 시작할 수 있으며 요청이 지정된 시간 프레임에 서버에 제공되지 않으면 이전 연결을 안전하게 닫을 수 있습니다.

+0

그럼 실제로 문제를 해결하지는 못합니다. 사용자가 페이지를 새로 고치고 서버가 시간 초과가 발생하기 전에이 버려진 연결에 메시지를 보내는 경우 어떻게됩니까? – moniker

+0

페이지 새로 고침은 새 연결을 시작해야합니다. 사용자/창당 한 번에 하나의 활성 연결 만있을 수 있으므로 가장 최근 연결을 사용할 수 있습니다. 또는 열려있는 모든 연결에 메시지를 보내십시오. –

관련 문제