저는 C#을 사용하여 트위터 스트림 API에서 데이터를 읽으려고했는데 때로는 API가 데이터를 반환하지 않고 거의 실시간 응답을 찾고 있기 때문에, 스트림이 다음 또는 이일 동안 더 이상의 데이터를 반환하지 않는 경우 판독기에서 1 바이트 이상의 버퍼 길이를 사용하는 것을 주저했습니다.한 번에 한 바이트 씩 읽지 않고 HTTP 스트림을 소비합니다.
내가 다음 줄을 사용하고 있습니다 : 지금은 응용 프로그램을 확장 할 계획이라고
input.BeginRead(buffer, 0, buffer.Length, InputReadComplete, null);
//buffer = new byte[1]
을, 나는 하나의 크기는 CPU 사용량이 많이 발생하고, 그 수를 증가 할 것이라고 생각 ,하지만 여전히 스트림이 막히는 것을 원치 않습니다. 다음 5 초 또는 그와 비슷한 것으로 바이트가 더 이상 읽히지 않으면 스트림을 반환 할 수 있습니까?
트위터의 정책으로 인해 연결을 계속 열거 나 닫을 수 없습니다. 먼저 비동기 콜백 타이머를 사용하여 읽기를 일찍 끝낼 수있는 방법을 보여줄 수 있습니까? – HenryZhang
@huadianz : 시작 지점을 알려주는 예제를 추가했습니다. –
Read는 버퍼의 모든 데이터를 반환합니까, 아니면 데이터가 손실 되었습니까? – HenryZhang