* Refactor handlePeer function to use async/await and emit "peer" event, and make Proxy class extend EventEmitter.

This commit is contained in:
Derrick Hammer 2023-04-16 03:41:50 -04:00
parent 8b678e81e8
commit 1c9a430d5e
Signed by: pcfreak30
GPG Key ID: C997C339BE476FF2
2 changed files with 12 additions and 4 deletions

View File

@ -70,14 +70,20 @@ const errorSocketEncoding = {
const nextSocketId = idFactory(1);
export default class MultiSocketProxy extends Proxy {
handlePeer({ peer, muxer, ...options }: DataSocketOptions & PeerOptions) {
new Peer({
async handlePeer({
peer,
muxer,
...options
}: DataSocketOptions & PeerOptions) {
const conn = new Peer({
...this.socketOptions,
proxy: this,
peer,
muxer,
...options,
}).init();
});
await conn.init();
this.emit("peer", conn);
}
private socketClass: any;
private _peers: Map<string, PeerEntity> = new Map<string, PeerEntity>();

View File

@ -1,5 +1,6 @@
import Protomux from "protomux";
import { DataSocketOptions, PeerOptions } from "./peer.js";
import EventEmitter from "events";
export interface ProxyOptions extends DataSocketOptions {
swarm: any;
@ -8,7 +9,7 @@ export interface ProxyOptions extends DataSocketOptions {
autostart?: boolean;
}
export default abstract class Proxy {
export default abstract class Proxy extends EventEmitter {
protected _listen: any;
protected _autostart: boolean;
@ -24,6 +25,7 @@ export default abstract class Proxy {
autostart = false,
emulateWebsocket = false,
}: ProxyOptions) {
super();
this._swarm = swarm;
this._protocol = protocol;
this._listen = listen;