연결 해제란 무엇인가요?
스트리밍 연결이 끊어질 수 있는 이유
- 인증 오류(잘못된 토큰을 사용했거나 잘못된 인증 방식을 사용한 경우).
- X 측에서 스트리밍 서버가 재시작되는 경우. 이는 보통 코드 배포와 관련이 있으며 일반적으로 발생할 수 있는 상황이므로, 이를 고려하여 설계해야 합니다.
- 클라이언트가 스트림에서 전달되는 포스트의 양을 따라가지 못하거나 데이터를 너무 느리게 읽는 경우. 모든 스트리밍 연결에는 클라이언트로 전송할 메시지 큐가 있습니다. 이 큐가 시간이 지나면서 너무 커지면 연결이 종료됩니다.
- 계정이 일일/월간 포스트 할당량을 초과한 경우.
- 활성 중복 연결이 너무 많은 경우.
- 클라이언트가 갑자기 데이터 읽기를 중단한 경우. 스트림에서 포스트를 읽는 속도가 갑자기 떨어지면 연결이 종료됩니다.
- 서버와 클라이언트 간의 네트워크 문제 발생 가능성.
- 일시적인 서버 측 문제 또는 예정된 점검 및 업데이트. (status page를 확인하세요)
일반적인 연결 끊김 errors는 다음과 같습니다:
끊김을 예상하고 재연결하기
- 코드에서 새 콘텐츠와 하트비트가 더 이상 도착하지 않는 시점을 감지해야 합니다.
- 그런 일이 발생하면, 코드에서 재연결 로직을 트리거해야 합니다. 일부 클라이언트와 언어에서는 읽기 타임아웃을 지정할 수 있으며, 이를 20초로 설정할 수 있습니다.
- 서비스는 이러한 연결 끊김을 감지하고 가능한 한 빨리 재연결해야 합니다.
- TCP/IP 레벨 네트워크 오류의 경우 선형적으로 대기 시간을 늘리십시오. 이러한 문제는 일반적으로 일시적이며 빠르게 해소되는 경향이 있습니다. 재연결 지연 시간을 시도할 때마다 250ms씩 늘려 최대 16초까지 증가시키십시오.
- 재연결이 적절한 HTTP 오류의 경우 지수적으로 대기 시간을 늘리십시오. 5초 대기에서 시작해 시도할 때마다 두 배로 늘려 최대 320초까지 증가시키십시오.
- HTTP 429 오류(요청 한도 초과)의 경우 지수적으로 대기 시간을 늘리십시오. 1분 대기에서 시작해 시도할 때마다 두 배로 늘리십시오. 각 HTTP 429 응답을 받을 때마다, 해당 계정에 대한 rate limit이 더 이상 적용되지 않을 때까지 대기해야 하는 시간이 증가한다는 점에 유의하십시오.
손실된 데이터 복구
요청 한도 및 사용량
- x-rate-limit-limit 헤더는 15분 윈도우 동안 클라이언트가 수행할 수 있도록 할당된 요청 수를 나타냅니다.
- x-rate-limit-remaining 헤더는 15분 윈도우 동안 지금까지 수행된 요청 수를 나타냅니다.
- x-rate-limit-reset 헤더는 15분 윈도우가 언제 다시 시작되는지를 나타내는 UNIX 타임스탬프로, 이 시점에 x-rate-limit-remaining 값이 0으로 재설정됩니다.
재연결 모범 사례
user-agent HTTP 헤더에 클라이언트의 버전 정보가 포함되어 있는지 확인하세요. 이는 X 측에서 문제를 진단하는 데 매우 중요합니다. 환경상 user-agent 필드를 설정할 수 없다면 x-user-agent 헤더를 설정하세요.