trying to get jest to exit cleanly when running all tests.
Seems like maybe something in libp2p. Giving up for now.
This commit is contained in:
parent
52bada4ac8
commit
002c0a9fa9
|
@ -122,6 +122,7 @@ export class RhizomeNode {
|
|||
}
|
||||
|
||||
async stop() {
|
||||
this.peers.stop();
|
||||
await this.pubSub.stop();
|
||||
await this.requestReply.stop();
|
||||
await this.httpServer.stop();
|
||||
|
|
|
@ -136,6 +136,7 @@ export class Peers {
|
|||
}
|
||||
|
||||
start() {
|
||||
// TODO: Move this somewhere that makes more sense
|
||||
this.rhizomeNode.pubSub.subscribeTopic(
|
||||
this.rhizomeNode.config.pubSubTopic,
|
||||
(sender, msg) => {
|
||||
|
@ -147,6 +148,13 @@ export class Peers {
|
|||
);
|
||||
}
|
||||
|
||||
stop() {
|
||||
debug(`[${this.rhizomeNode.config.peerId}]`, 'Closing all peer request sockets');
|
||||
for (const peer of this.peers) {
|
||||
peer.reqSock?.close();
|
||||
}
|
||||
}
|
||||
|
||||
addPeer(addr: PeerAddress): Peer {
|
||||
const peer = new Peer(this.rhizomeNode, addr);
|
||||
this.peers.push(peer);
|
||||
|
|
|
@ -11,7 +11,6 @@ export type PeerRequest = {
|
|||
|
||||
export type RequestHandler = (req: PeerRequest, res: ResponseSocket) => void;
|
||||
|
||||
// TODO: Retain handle to request socket for each peer, so we only need to open once
|
||||
export class RequestSocket {
|
||||
sock = new Request();
|
||||
|
||||
|
@ -33,13 +32,16 @@ export class RequestSocket {
|
|||
const [res] = await this.sock.receive();
|
||||
return res;
|
||||
}
|
||||
|
||||
close() {
|
||||
this.sock.close();
|
||||
debug(`[${this.requestReply.rhizomeNode.config.peerId}]`, 'Request socket closed');
|
||||
}
|
||||
}
|
||||
|
||||
export class ResponseSocket {
|
||||
sock: Reply;
|
||||
constructor(sock: Reply) {
|
||||
this.sock = sock;
|
||||
}
|
||||
constructor(readonly sock: Reply) {}
|
||||
|
||||
async send(msg: object | string) {
|
||||
if (typeof msg === 'object') {
|
||||
msg = JSON.stringify(msg);
|
||||
|
@ -101,5 +103,6 @@ export class RequestReply {
|
|||
await this.replySock.unbind(this.requestBindAddrStr);
|
||||
this.replySock.close();
|
||||
this.replySock = new Reply();
|
||||
debug(`[${this.rhizomeNode.config.peerId}]`, 'Reply socket closed');
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue