mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-08 16:28:49 +00:00
configurable list and get timeout on relay.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nostr-tools",
|
"name": "nostr-tools",
|
||||||
"version": "1.7.0",
|
"version": "1.7.1",
|
||||||
"description": "Tools for making a Nostr client.",
|
"description": "Tools for making a Nostr client.",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
5
pool.ts
5
pool.ts
@@ -29,7 +29,10 @@ export class SimplePool {
|
|||||||
const existing = this._conn[nm]
|
const existing = this._conn[nm]
|
||||||
if (existing) return existing
|
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
|
this._conn[nm] = relay
|
||||||
|
|
||||||
await relay.connect()
|
await relay.connect()
|
||||||
|
|||||||
14
relay.ts
14
relay.ts
@@ -35,7 +35,15 @@ export type SubscriptionOptions = {
|
|||||||
alreadyHaveEvent?: null | ((id: string, relay: string) => boolean)
|
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 ws: WebSocket
|
||||||
var openSubs: {[id: string]: {filters: Filter[]} & SubscriptionOptions} = {}
|
var openSubs: {[id: string]: {filters: Filter[]} & SubscriptionOptions} = {}
|
||||||
var listeners: {
|
var listeners: {
|
||||||
@@ -252,7 +260,7 @@ export function relayInit(url: string): Relay {
|
|||||||
let timeout = setTimeout(() => {
|
let timeout = setTimeout(() => {
|
||||||
s.unsub()
|
s.unsub()
|
||||||
resolve(events)
|
resolve(events)
|
||||||
}, 1500)
|
}, listTimeout)
|
||||||
s.on('eose', () => {
|
s.on('eose', () => {
|
||||||
s.unsub()
|
s.unsub()
|
||||||
clearTimeout(timeout)
|
clearTimeout(timeout)
|
||||||
@@ -268,7 +276,7 @@ export function relayInit(url: string): Relay {
|
|||||||
let timeout = setTimeout(() => {
|
let timeout = setTimeout(() => {
|
||||||
s.unsub()
|
s.unsub()
|
||||||
resolve(null)
|
resolve(null)
|
||||||
}, 1500)
|
}, getTimeout)
|
||||||
s.on('event', (event: Event) => {
|
s.on('event', (event: Event) => {
|
||||||
s.unsub()
|
s.unsub()
|
||||||
clearTimeout(timeout)
|
clearTimeout(timeout)
|
||||||
|
|||||||
Reference in New Issue
Block a user