원격 서비스에 많은 websocket 요청을 수행하는 노드에 응용 프로그램을 작성하고 있습니다 (ws library 사용). 따라서 원격 서비스는 서버이고 내 노드 응용 프로그램은 클라이언트입니다. 그것은 아주 잘 작동하지만, 때때로 갑자기 다음 TimeoutError의 긴 목록을 얻을 : 내가 지금있는이 오류가 발생 호출 궁금해 다양한 웹 소켓 호출을 할 수 있기 때문에노드 TimeoutError를 catch하고 요청을 기록하는 방법은 무엇입니까?
Unhandled rejection TimeoutError: ResourceRequest timed out
at ResourceRequest._fireTimeout (/Users/kramer65/repos/mmj/node_modules/generic-pool/lib/ResourceRequest.js:58:17)
at Timeout.bound (/Users/kramer65/repos/mmj/node_modules/generic-pool/lib/ResourceRequest.js:8:15)
at ontimeout (timers.js:386:11)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5)
합니다. 나는 아래에 붙이기 때문에 시도/캐치에 ws.send()
을 감싸려고했으나 아무 것도하지 않는 것 같습니다.
try {
ws.send(request_json);
} catch(e) {
console.log('WEBSOCKET ERROR', e);
console.log('WEBSOCKET JSON', request_json);
}
누구든지 내가 TimeoutError를 잡아서 요청 내용을 기록 할 수 있는지 알고 있습니까? 모든 팁을 환영합니다!
는 는[편집] 다음 @Mark_M 제안으로 나는 ws.send() 메소드에 콜백을 추가했습니다 로 :이의 상단에 게시 된
ws.send(JSON.stringify(request_obj)), (error)=>{
console.log('WEBSOCKET ERROR', request_obj.action, error);
});
불행하게도 나는 여전히 같은 오류를 얻을 문제.
는 [EDIT2] 또한 @wrangler에 의해 제안 시도 :
ws.send(JSON.stringify(request_obj));
ws.onerror = function(event) {
console.log('WEBSOCKET ONERROR', request_obj.action, event);
};
ws.onclose = function (event){
console.log('WEBSOCKET ONCLOSE', request_obj.action, event);
};
을하지만 불행히도 이것은 또한 작동하지 않습니다. 이 질문의 맨 위에 게시 할 때와 동일한 오류가 발생합니다.
다른 아이디어?
.. :-) 비록 적절한 웹 소켓 오류보고가있다. 따라서 그들은 ack error 콜백에 의해 잡히지 않습니다. 나는 그것을 초기 질문에 추가했다. 내가 뭘 잘못했는지 알기나 해? – kramer65