2017-04-10 1 views
0

서버 및 클라이언트로 docs 페이지 설정에서 예제 WebSocketSyncServer.js 및 WebSocketSyncProtocol.js와 함께 Dexie.Syncable을 사용하고 있습니다. 그러나 페이지를 새로 고침하면 서버에서 "ECONNRESET"이 표시됩니다.브라우저를 종료 할 때 특히 syncable을 사용할 때 명시 적으로 DB를 닫아야합니까?

db.close();을 사용하여 명시 적으로 db를 닫거나 db.syncable.disconnect(url);을 사용하여 연결을 끊으면 더 이상 "ECONNRESET"이 표시되지 않습니다. 이것은 나에게 의미가 있지만 db.close()에있는 문서에서이 함수를 호출하는 것에 대해 실제로 생각할 필요가 없다고 말합니다.

난 그냥 db.syncable.disconnect(url)를 사용하고 db.close 걱정 안 (당신이 db.syncable 사용하지 않는 이유를 사용자가/브라우저를 새로 닫을 때 DB를 닫 싶지 않을 경우에도)

?

답변

1

페이지를 새로 고침하면 브라우저가 db 연결을 자동으로 닫습니다. 그래서 페이지가 종료 될 때 명시 적으로 연결을 닫을 필요가 없습니다. 임시 Dexie 인스턴스를 사용하고 있다면, 더 이상 사용하지 않을 때 닫는 것이 현명합니다.

ECONNRESET 오류는 websocket 연결에서 발생합니다. 샘플 WebSocketSyncProtocol은이 오류를 Dexie.Syncable에 전달하여 임시 네트워크 작동 중지 이벤트로 처리하고 다시 연결을 시도하도록 알립니다. 이 오류는 net이 일시적으로 중단 될 때도 발생할 수 있습니다. 페이지 셧다운을 포함한 정상적인 상황에서는 문제가 발생하지 않으므로 아무런 문제가 없습니다. Dexie.Syncable은 몇 초 후에 다시 연결을 시도 할 예정이지만,이 재 연결은 실제로 페이지가 종료되고 다시로드 될 때 결코 일어나지 않습니다.

이 특정 오류를 자동으로 무시하는 것이 좋습니다. 처리되지 않은 거부 또는 Dexie.Syncable에 대한 statusChanged 이벤트를 수신했는지 여부는 알 수 없지만 이러한 유형의 임시 오류는 정상적인 오류이므로 사용자가 무시할 수 있습니다.

+0

감사합니다. 서버 측에서는 이미 오류를 처리하지만 정상적인 이벤트임을 알려 주셔서 감사합니다. – dan