2014-03-05 1 views
3

TLS 연결에 ClearTextStream이 있는데 "end"가 이미 호출되었는지 확인하려고합니다. 실제 문제는 스트림에 무언가를 쓰려고하는데 "write after end"오류가 발생한다는 것입니다.NodeJS ClearTextStream 스트림이 "종료"되었는지 확인하십시오.

이제는 "end"가 이미 호출되었는지 확인하고 싶습니다. 나는 "가까운"사건을 가지고 있지만, 모든 경우에 해고되는 것은 아니다.

documentation에서 찾을 수 없으며 인터넷 검색으로 찾을 수 없습니다.

오류 이벤트 (나를 위해 "write after end"를 던지고 있음)를 확인하고 거기에서 상황을 처리 할 수 ​​있습니다.하지만 처음에는 이것을 확인할 방법이 없습니다.

감사합니다.

답변

3

write after end 오류가 발생하면 닫힌 (즉 더 이상 입력 데이터를 허용 할 수없는) Writable 스트림에 데이터를 쓰려고합니다. 쓰기 가능한 스트림이 닫히면 finish 이벤트가 발생합니다 (the documentation 참조). 반면에 close 이벤트는 Readable 스트림에 의해 기본 리소스가 닫힐 때 (예 : 읽는 파일 설명자가 닫혀있을 때) 발생합니다. ClearTextStreamDuplex 스트림이기 때문에

, 그것은 모두 closefinish 이벤트를 방출 할 수 있지만 같은 일을 의미하지 않는다. 특별한 경우에는 finish 이벤트를 청취하고 적절하게 반응해야합니다.

또 다른 해결책은 this.endedthis.finished 논리 값을 (the source code 참조)을 확인하는 것입니다,하지만 난 그들이 개인 변수로하는 것이 좋습니다 만 구현 세부 사항이 아닌 공개 API를 반영하지 않을 것입니다.

관련 문제