Compare commits
2 Commits
b14509d6f1
...
41984ae588
Author | SHA1 | Date |
---|---|---|
Derrick Hammer | 41984ae588 | |
Derrick Hammer | 6c6f6c4954 |
|
@ -9,6 +9,7 @@ export type OnData = (peer: Peer, data: any) => void;
|
||||||
export type OnReceive = OnData;
|
export type OnReceive = OnData;
|
||||||
export type OnClose = OnData;
|
export type OnClose = OnData;
|
||||||
export type OnSend = OnData;
|
export type OnSend = OnData;
|
||||||
|
export type OnChannel = (peer: Peer, channel: any) => void;
|
||||||
export type OnOpenBound = (socket: Socket, data: any) => {
|
export type OnOpenBound = (socket: Socket, data: any) => {
|
||||||
connect: boolean;
|
connect: boolean;
|
||||||
} | Promise<{
|
} | Promise<{
|
||||||
|
@ -18,11 +19,13 @@ export type OnDataBound = (data: any) => void;
|
||||||
export type OnReceiveBound = OnDataBound;
|
export type OnReceiveBound = OnDataBound;
|
||||||
export type OnCloseBound = OnDataBound;
|
export type OnCloseBound = OnDataBound;
|
||||||
export type OnSendBound = OnDataBound;
|
export type OnSendBound = OnDataBound;
|
||||||
|
export type OnChannelBound = (channel: any) => void;
|
||||||
export interface DataSocketOptions {
|
export interface DataSocketOptions {
|
||||||
onopen?: OnOpen;
|
onopen?: OnOpen;
|
||||||
onreceive?: OnReceive;
|
onreceive?: OnReceive;
|
||||||
onsend?: OnSend;
|
onsend?: OnSend;
|
||||||
onclose?: OnClose;
|
onclose?: OnClose;
|
||||||
|
onchannel?: OnChannel;
|
||||||
emulateWebsocket?: boolean;
|
emulateWebsocket?: boolean;
|
||||||
}
|
}
|
||||||
export interface PeerOptions {
|
export interface PeerOptions {
|
||||||
|
@ -41,8 +44,9 @@ export default class Peer {
|
||||||
private _onreceive;
|
private _onreceive;
|
||||||
private _onsend;
|
private _onsend;
|
||||||
private _onclose;
|
private _onclose;
|
||||||
|
private _onchannel;
|
||||||
private _emulateWebsocket;
|
private _emulateWebsocket;
|
||||||
constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, emulateWebsocket, }: PeerOptionsWithProxy & DataSocketOptions);
|
constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, onchannel, emulateWebsocket, }: PeerOptionsWithProxy & DataSocketOptions);
|
||||||
private _channel?;
|
private _channel?;
|
||||||
get channel(): any;
|
get channel(): any;
|
||||||
init(): Promise<void>;
|
init(): Promise<void>;
|
||||||
|
|
|
@ -14,8 +14,9 @@ class Peer {
|
||||||
_onreceive;
|
_onreceive;
|
||||||
_onsend;
|
_onsend;
|
||||||
_onclose;
|
_onclose;
|
||||||
|
_onchannel;
|
||||||
_emulateWebsocket;
|
_emulateWebsocket;
|
||||||
constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, emulateWebsocket = false, }) {
|
constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, onchannel, emulateWebsocket = false, }) {
|
||||||
this._proxy = proxy;
|
this._proxy = proxy;
|
||||||
this._peer = peer;
|
this._peer = peer;
|
||||||
this._muxer = muxer;
|
this._muxer = muxer;
|
||||||
|
@ -23,6 +24,7 @@ class Peer {
|
||||||
this._onreceive = onreceive?.bind(undefined, this);
|
this._onreceive = onreceive?.bind(undefined, this);
|
||||||
this._onsend = onsend?.bind(undefined, this);
|
this._onsend = onsend?.bind(undefined, this);
|
||||||
this._onclose = onclose?.bind(undefined, this);
|
this._onclose = onclose?.bind(undefined, this);
|
||||||
|
this._onchannel = onchannel?.bind(undefined, this);
|
||||||
this._emulateWebsocket = emulateWebsocket;
|
this._emulateWebsocket = emulateWebsocket;
|
||||||
}
|
}
|
||||||
_channel;
|
_channel;
|
||||||
|
@ -74,6 +76,7 @@ class Peer {
|
||||||
await self._onreceive?.(m);
|
await self._onreceive?.(m);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
await this._onchannel?.(this._channel);
|
||||||
await this._channel.open();
|
await this._channel.open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default class Proxy {
|
||||||
private _listen;
|
private _listen;
|
||||||
private _socketOptions;
|
private _socketOptions;
|
||||||
private _autostart;
|
private _autostart;
|
||||||
constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, listen, autostart, emulateWebsocket, }: ProxyOptions);
|
constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, onchannel, listen, autostart, emulateWebsocket, }: ProxyOptions);
|
||||||
private _swarm;
|
private _swarm;
|
||||||
get swarm(): any;
|
get swarm(): any;
|
||||||
private _protocol;
|
private _protocol;
|
||||||
|
|
|
@ -9,7 +9,7 @@ class Proxy {
|
||||||
_listen;
|
_listen;
|
||||||
_socketOptions;
|
_socketOptions;
|
||||||
_autostart;
|
_autostart;
|
||||||
constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, listen = false, autostart = false, emulateWebsocket = false, }) {
|
constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, onchannel, listen = false, autostart = false, emulateWebsocket = false, }) {
|
||||||
this._swarm = swarm;
|
this._swarm = swarm;
|
||||||
this._protocol = protocol;
|
this._protocol = protocol;
|
||||||
this._listen = listen;
|
this._listen = listen;
|
||||||
|
@ -19,6 +19,7 @@ class Proxy {
|
||||||
onreceive,
|
onreceive,
|
||||||
onsend,
|
onsend,
|
||||||
onclose,
|
onclose,
|
||||||
|
onchannel,
|
||||||
emulateWebsocket,
|
emulateWebsocket,
|
||||||
};
|
};
|
||||||
this.init();
|
this.init();
|
||||||
|
|
|
@ -14,6 +14,7 @@ export type OnData = (peer: Peer, data: any) => void;
|
||||||
export type OnReceive = OnData;
|
export type OnReceive = OnData;
|
||||||
export type OnClose = OnData;
|
export type OnClose = OnData;
|
||||||
export type OnSend = OnData;
|
export type OnSend = OnData;
|
||||||
|
export type OnChannel = (peer: Peer, channel: any) => void;
|
||||||
|
|
||||||
export type OnOpenBound = (
|
export type OnOpenBound = (
|
||||||
socket: Socket,
|
socket: Socket,
|
||||||
|
@ -28,11 +29,14 @@ export type OnReceiveBound = OnDataBound;
|
||||||
export type OnCloseBound = OnDataBound;
|
export type OnCloseBound = OnDataBound;
|
||||||
export type OnSendBound = OnDataBound;
|
export type OnSendBound = OnDataBound;
|
||||||
|
|
||||||
|
export type OnChannelBound = (channel: any) => void;
|
||||||
|
|
||||||
export interface DataSocketOptions {
|
export interface DataSocketOptions {
|
||||||
onopen?: OnOpen;
|
onopen?: OnOpen;
|
||||||
onreceive?: OnReceive;
|
onreceive?: OnReceive;
|
||||||
onsend?: OnSend;
|
onsend?: OnSend;
|
||||||
onclose?: OnClose;
|
onclose?: OnClose;
|
||||||
|
onchannel?: OnChannel;
|
||||||
emulateWebsocket?: boolean;
|
emulateWebsocket?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +58,7 @@ export default class Peer {
|
||||||
private _onreceive: OnReceiveBound;
|
private _onreceive: OnReceiveBound;
|
||||||
private _onsend: OnSendBound;
|
private _onsend: OnSendBound;
|
||||||
private _onclose: OnCloseBound;
|
private _onclose: OnCloseBound;
|
||||||
|
private _onchannel: OnChannelBound;
|
||||||
private _emulateWebsocket: boolean;
|
private _emulateWebsocket: boolean;
|
||||||
|
|
||||||
constructor({
|
constructor({
|
||||||
|
@ -64,6 +69,7 @@ export default class Peer {
|
||||||
onreceive,
|
onreceive,
|
||||||
onsend,
|
onsend,
|
||||||
onclose,
|
onclose,
|
||||||
|
onchannel,
|
||||||
emulateWebsocket = false,
|
emulateWebsocket = false,
|
||||||
}: PeerOptionsWithProxy & DataSocketOptions) {
|
}: PeerOptionsWithProxy & DataSocketOptions) {
|
||||||
this._proxy = proxy;
|
this._proxy = proxy;
|
||||||
|
@ -73,6 +79,7 @@ export default class Peer {
|
||||||
this._onreceive = onreceive?.bind(undefined, this);
|
this._onreceive = onreceive?.bind(undefined, this);
|
||||||
this._onsend = onsend?.bind(undefined, this);
|
this._onsend = onsend?.bind(undefined, this);
|
||||||
this._onclose = onclose?.bind(undefined, this);
|
this._onclose = onclose?.bind(undefined, this);
|
||||||
|
this._onchannel = onchannel?.bind(undefined, this);
|
||||||
this._emulateWebsocket = emulateWebsocket;
|
this._emulateWebsocket = emulateWebsocket;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,6 +137,7 @@ export default class Peer {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await this._onchannel?.(this._channel);
|
||||||
await this._channel.open();
|
await this._channel.open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ export default class Proxy {
|
||||||
onreceive,
|
onreceive,
|
||||||
onsend,
|
onsend,
|
||||||
onclose,
|
onclose,
|
||||||
|
onchannel,
|
||||||
listen = false,
|
listen = false,
|
||||||
autostart = false,
|
autostart = false,
|
||||||
emulateWebsocket = false,
|
emulateWebsocket = false,
|
||||||
|
@ -33,6 +34,7 @@ export default class Proxy {
|
||||||
onreceive,
|
onreceive,
|
||||||
onsend,
|
onsend,
|
||||||
onclose,
|
onclose,
|
||||||
|
onchannel,
|
||||||
emulateWebsocket,
|
emulateWebsocket,
|
||||||
};
|
};
|
||||||
this.init();
|
this.init();
|
||||||
|
|
Loading…
Reference in New Issue