2013-04-16 2 views
0

그래서 기본적으로 웹 소켓을 사용하여 채팅 응용 프로그램을 말하면 서버 연결을 끊는 중 메시지를 보낼 수 있습니다. 나는 onbeforeunload에 바인딩을 시도했지만 메시지 만 표시 할 수있는 것 같습니다.페이지를 떠나기 전에 websocket에 연결 해제 메시지를 보내려면 어떻게해야합니까?

더 나은 전략이 있습니까? 그렇지 않다면 서버 측에서 ping/timeout 전략을 수행해야 할 것처럼 보입니다.

감사합니다.

+0

끊어진 연결은 항상 발생합니다. IMO에서는 항상 ping/timeout 전략이 필요합니다. 내장 된 핑은 모든 브라우저에서 작동하지 않으므로 주기적으로 서버에서 클라이언트 *로 작은 메시지 *를 보낸 다음 클라이언트에서 즉시 응답하는지 여부를 확인하여 확인합니다. –

+0

서버가 연결이 불명확하게 자동으로 닫히고 클라이언트 코드에서 onClose 이벤트 만 있으면됩니다. –

답변

0

웹 소켓은 TCP 위에 구현되며 다른 곳에서는 TCP 연결이 끊어 질 것으로 예상됩니다.

네트워크 보안 측면에서 서버 측은 클라이언트의 "친절"에 의존해서는 안되며 항상 독립적이어야하며 더 이상 연결이 끊어 질 것으로 예상해야합니다.

GPRS/EDGE/3G/4G 연결 상태가 좋지 않거나 브리지/지상, 무선 랜 드랍스, 이더넷 연결 해제, ISP 문제, 서버 네트워크 문제 등과 같은 예기치 않은 연결 끊김이 예상됩니다. . 실제로 "bye"가없는 연결이 끊어지면 가장 일반적으로 연결이 끊어 지므로이를 고려하여 서버 측 로직을 구현해야합니다.

관련 문제