mirror of
https://github.com/smolgrrr/TAO.git
synced 2024-09-20 09:21:25 +00:00
smol fix
This commit is contained in:
parent
3203349573
commit
467e1aef8f
@ -16,15 +16,10 @@ const currentSubList: Array<Subscribe> = [];
|
|||||||
const relayMap = new Map<string, Relay>();
|
const relayMap = new Map<string, Relay>();
|
||||||
|
|
||||||
export const addRelay = async (url: string) => {
|
export const addRelay = async (url: string) => {
|
||||||
const relay = await Relay.connect(url);
|
const relay = await Relay.connect(url)
|
||||||
// relay.on('connect', () => {
|
console.log(`connected to ${relay.url}`)
|
||||||
// console.info(`connected to ${relay.url}`);
|
|
||||||
// });
|
|
||||||
// relay.on('error', () => {
|
|
||||||
// console.warn(`failed to connect to ${relay.url}`);
|
|
||||||
// });
|
|
||||||
try {
|
try {
|
||||||
await relay.connect();
|
|
||||||
currentSubList.forEach(({cb, filter}) => subscribe(cb, filter, relay));
|
currentSubList.forEach(({cb, filter}) => subscribe(cb, filter, relay));
|
||||||
relayMap.set(url, relay);
|
relayMap.set(url, relay);
|
||||||
} catch {
|
} catch {
|
||||||
@ -43,18 +38,21 @@ const subscribe = (
|
|||||||
relay: Relay,
|
relay: Relay,
|
||||||
unsub?: boolean
|
unsub?: boolean
|
||||||
) => {
|
) => {
|
||||||
const sub = relay.subscribe([filter],
|
const sub = relay.subscribe([filter], {
|
||||||
{
|
onevent(event) {
|
||||||
onevent(event) {
|
cb(event, relay.url);
|
||||||
cb(event, relay.url);
|
},
|
||||||
},
|
});
|
||||||
oneose() {
|
|
||||||
if (unsub) {
|
|
||||||
unsubscribe(sub);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
subList.push(sub);
|
subList.push(sub);
|
||||||
|
|
||||||
|
if (unsub) {
|
||||||
|
if (typeof sub.oneose === 'function') {
|
||||||
|
sub.oneose = () => {
|
||||||
|
// console.log('eose', relay.url);
|
||||||
|
unsubscribe(sub);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
return sub;
|
return sub;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -69,6 +67,10 @@ export const subOnce = (
|
|||||||
const relay = relayMap.get(obj.relay);
|
const relay = relayMap.get(obj.relay);
|
||||||
if (relay) {
|
if (relay) {
|
||||||
const sub = subscribe(obj.cb, obj.filter, relay);
|
const sub = subscribe(obj.cb, obj.filter, relay);
|
||||||
|
sub.oneose = () => {
|
||||||
|
// console.log('eose', relay.url);
|
||||||
|
unsubscribe(sub);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user