2017-10-17 13 views
1

SSE (EventSource API)를 사용하여 클라이언트에 일부 이벤트가 브로드 캐스팅되는 웹 사이트에서 작업하고 있습니다. Android 용 Chrome 모바일 버전에서 내 사이트를 테스트 할 때 채널이 약 5 분 동안 유휴 상태 일 때 연결이 끊어졌습니다.휴대 전화에서 SSE (Server-sent events) 연결이 끊어졌습니다.

다른 통신사와 다른 브라우저를 사용하는 여러 Android 기기를 사용했는데 화면이 켜져 있든 꺼져 있더라도 결과는 같습니다. 데스크톱 크롬은 연결 상태를 오랫동안 유지합니다.

이 문제에 대한 정보를 찾을 수 없으며 문제를 디버그 할 때 마지막 이벤트가 전송 된 후 약 3 분 30 초 동안 전화 IP 주소에서받은 TCP "FIN"패킷을 받았습니다.

이벤트 소스의 onerror 이벤트가 발생하지 않아 새 이벤트를 시작하기 위해 언제 연결이 끊어 졌는지 알 수 없습니다.

이 문제를 방지 할 방법이 있습니까? 아니면 연결 대기를 방지하기 위해 30 초마다 가짜 메시지를 보내야합니까? 사전에

덕분에

답변

0

당신은

  • 필드 이름 인 경우

    • 필드이 "다시 시도"를 reconnection timeEventSource의 예를 설정하기 위해 retry 필드를 설정할 수 있습니다 값은 ASCII 숫자로만 구성되며 그 다음 필드 값을 밑줄 10의 정수로 해석하고 해당 정수에 대한 이벤트 스트림의 재 연결 시간 그렇지 않으면 필드를 무시하십시오. 답변에 대한
+0

감사합니다, 손님! 불행히도 "재시도"를 보내면 아무런 차이가 없습니다. 클라이언트가 연결을 끊고 다시 설정할 필요가없는 것과 같습니다. – user683887

+0

메시지를 5 분 이내에 보내 보았습니까? – guest271314

+0

예, 메시지를 보내는 경우 (예 : 2 분마다) 연결이 끊어지지 않습니다. 그래서 나는 매분마다 "keep-alive"메시지를 보낼 수 있었지만 이것을 할 수있는 더 좋은 방법이 있는지 궁금해했습니다. – user683887