mirror of
https://github.com/vitorpamplona/Nostryfied.git
synced 2025-06-06 18:31:07 +00:00
Correctly closes connections
This commit is contained in:
parent
ba8f69da04
commit
7cca63f7ea
@ -51,10 +51,16 @@ function hexToBytes(hex) {
|
|||||||
const fetchFromRelay = async (relay, filters, events) =>
|
const fetchFromRelay = async (relay, filters, events) =>
|
||||||
new Promise((resolve, reject) => {
|
new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
// prevent hanging forever
|
|
||||||
setTimeout(() => reject('timeout'), 300_000)
|
|
||||||
// open websocket
|
// open websocket
|
||||||
const ws = new WebSocket(relay)
|
const ws = new WebSocket(relay)
|
||||||
|
|
||||||
|
// prevent hanging forever
|
||||||
|
setTimeout(() => {
|
||||||
|
ws.close()
|
||||||
|
reject('timeout')
|
||||||
|
}, 300_000)
|
||||||
|
|
||||||
// subscription id
|
// subscription id
|
||||||
const subsId = 'my-sub'
|
const subsId = 'my-sub'
|
||||||
// subscribe to events filtered by author
|
// subscribe to events filtered by author
|
||||||
@ -75,10 +81,24 @@ function hexToBytes(hex) {
|
|||||||
$('#events-found').text(`${Object.keys(events).length} events found`)
|
$('#events-found').text(`${Object.keys(events).length} events found`)
|
||||||
}
|
}
|
||||||
// end of subscription messages
|
// end of subscription messages
|
||||||
if (msgType === 'EOSE' && subscriptionId === subsId) resolve()
|
if (msgType === 'EOSE' && subscriptionId === subsId) {
|
||||||
|
ws.close()
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ws.onerror = (err) => {
|
||||||
|
ws.close()
|
||||||
|
reject(err)
|
||||||
|
}
|
||||||
|
ws.onclose = (socket, event) => {
|
||||||
|
resolve()
|
||||||
}
|
}
|
||||||
ws.onerror = (err) => reject(err)
|
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
|
try {
|
||||||
|
ws.close()
|
||||||
|
} catch (exception) {
|
||||||
|
}
|
||||||
|
|
||||||
reject(exception)
|
reject(exception)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -99,18 +119,27 @@ function hexToBytes(hex) {
|
|||||||
const sendToRelay = async (relay, data) =>
|
const sendToRelay = async (relay, data) =>
|
||||||
new Promise((resolve, reject) => {
|
new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
// prevent hanging forever
|
|
||||||
setTimeout(() => reject('timeout'), 20_000)
|
|
||||||
const ws = new WebSocket(relay)
|
const ws = new WebSocket(relay)
|
||||||
|
|
||||||
|
// prevent hanging forever
|
||||||
|
setTimeout(() => {
|
||||||
|
ws.close()
|
||||||
|
reject('timeout')
|
||||||
|
}, 300_000)
|
||||||
|
|
||||||
// fetch events from relay
|
// fetch events from relay
|
||||||
ws.onopen = () => {
|
ws.onopen = () => {
|
||||||
|
console.log("sending ", data.length, "events to ", relay)
|
||||||
for (evnt of data) {
|
for (evnt of data) {
|
||||||
ws.send(JSON.stringify(['EVENT', evnt]))
|
ws.send(JSON.stringify(['EVENT', evnt]))
|
||||||
}
|
}
|
||||||
ws.close()
|
ws.close()
|
||||||
resolve(`done for ${relay}`)
|
resolve(`done for ${relay}`)
|
||||||
}
|
}
|
||||||
ws.onerror = (err) => reject(err)
|
ws.onerror = (err) => {
|
||||||
|
console.log("Error", err)
|
||||||
|
reject(err)
|
||||||
|
}
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
reject(exception)
|
reject(exception)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user