Handle socket errors

This commit is contained in:
Jon Staab
2024-05-22 12:56:54 -07:00
parent fdce131d27
commit d5b4a3218e
8 changed files with 18 additions and 13 deletions
+5 -6
View File
@@ -159,12 +159,11 @@ export class ConnectionMeta {
getSpeed = () => this.responseCount ? this.responseTimer / this.responseCount : 0
getStatus = () => {
if (this.authStatus === AuthStatus.Unauthorized) return ConnectionStatus.Unauthorized
if (this.authStatus === AuthStatus.Forbidden) return ConnectionStatus.Forbidden
if (this.lastOpen === 0) return ConnectionStatus.Closed
if (this.lastFault > this.lastOpen) return ConnectionStatus.Error
if (this.lastClose > this.lastOpen) return ConnectionStatus.Closed
if (this.getSpeed() > 1000) return ConnectionStatus.Slow
if (this.authStatus === AuthStatus.Unauthorized) return ConnectionStatus.Unauthorized
if (this.authStatus === AuthStatus.Forbidden) return ConnectionStatus.Forbidden
if (this.lastFault && this.lastFault > this.lastOpen) return ConnectionStatus.Error
if (this.lastClose > this.lastOpen) return ConnectionStatus.Closed
if (this.getSpeed() > 1000) return ConnectionStatus.Slow
return ConnectionStatus.Ok
}
+2 -1
View File
@@ -59,6 +59,7 @@ export class Socket {
}
onError = () => {
this.failedToConnect = true
this.opts.onError()
this.disconnect()
}
@@ -105,7 +106,7 @@ export class Socket {
if (this.ws) {
const currentWs = this.ws
this.ready.then(() => currentWs.close())
this.ready.finally(() => currentWs.close())
this.ready = defer()
this.opts.onClose()
this.ws = undefined
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@welshman/net",
"version": "0.0.8",
"version": "0.0.9",
"author": "hodlbod",
"license": "MIT",
"description": "Utilities for connecting with nostr relays.",