configurable list and get timeout on relay.
This commit is contained in:
parent
c362212778
commit
9d345a8f01
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "nostr-tools",
|
||||
"version": "1.7.0",
|
||||
"version": "1.7.1",
|
||||
"description": "Tools for making a Nostr client.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
5
pool.ts
5
pool.ts
|
@ -29,7 +29,10 @@ export class SimplePool {
|
|||
const existing = this._conn[nm]
|
||||
if (existing) return existing
|
||||
|
||||
const relay = relayInit(nm)
|
||||
const relay = relayInit(nm, {
|
||||
getTimeout: this.getTimeout * 0.9,
|
||||
listTimeout: this.getTimeout * 0.9
|
||||
})
|
||||
this._conn[nm] = relay
|
||||
|
||||
await relay.connect()
|
||||
|
|
14
relay.ts
14
relay.ts
|
@ -35,7 +35,15 @@ export type SubscriptionOptions = {
|
|||
alreadyHaveEvent?: null | ((id: string, relay: string) => boolean)
|
||||
}
|
||||
|
||||
export function relayInit(url: string): Relay {
|
||||
export function relayInit(
|
||||
url: string,
|
||||
options: {
|
||||
getTimeout?: number
|
||||
listTimeout?: number
|
||||
} = {}
|
||||
): Relay {
|
||||
let {listTimeout = 3000, getTimeout = 3000} = options
|
||||
|
||||
var ws: WebSocket
|
||||
var openSubs: {[id: string]: {filters: Filter[]} & SubscriptionOptions} = {}
|
||||
var listeners: {
|
||||
|
@ -252,7 +260,7 @@ export function relayInit(url: string): Relay {
|
|||
let timeout = setTimeout(() => {
|
||||
s.unsub()
|
||||
resolve(events)
|
||||
}, 1500)
|
||||
}, listTimeout)
|
||||
s.on('eose', () => {
|
||||
s.unsub()
|
||||
clearTimeout(timeout)
|
||||
|
@ -268,7 +276,7 @@ export function relayInit(url: string): Relay {
|
|||
let timeout = setTimeout(() => {
|
||||
s.unsub()
|
||||
resolve(null)
|
||||
}, 1500)
|
||||
}, getTimeout)
|
||||
s.on('event', (event: Event) => {
|
||||
s.unsub()
|
||||
clearTimeout(timeout)
|
||||
|
|
Loading…
Reference in New Issue