Compare commits
2 Commits
84bc6ce1cb
...
40e139df0d
Author | SHA1 | Date |
---|---|---|
Derrick Hammer | 40e139df0d | |
Derrick Hammer | 518bdca8ad |
|
@ -21,7 +21,7 @@ export default class MultiSocketProxy extends Proxy {
|
||||||
get socketMap(): Map<number, number>;
|
get socketMap(): Map<number, number>;
|
||||||
private _sockets;
|
private _sockets;
|
||||||
get sockets(): Map<number, any>;
|
get sockets(): Map<number, any>;
|
||||||
handleNewPeerChannel(peer: Peer, channel: any): void;
|
handleNewPeerChannel(peer: Peer): void;
|
||||||
handleClosePeer(peer: Peer): Promise<void>;
|
handleClosePeer(peer: Peer): Promise<void>;
|
||||||
get(pubkey: Uint8Array): PeerEntity | undefined;
|
get(pubkey: Uint8Array): PeerEntity | undefined;
|
||||||
update(pubkey: Uint8Array, data: Partial<PeerEntity>): void;
|
update(pubkey: Uint8Array, data: Partial<PeerEntity>): void;
|
||||||
|
|
|
@ -94,13 +94,13 @@ class MultiSocketProxy extends proxy_js_1.default {
|
||||||
get sockets() {
|
get sockets() {
|
||||||
return this._sockets;
|
return this._sockets;
|
||||||
}
|
}
|
||||||
handleNewPeerChannel(peer, channel) {
|
handleNewPeerChannel(peer) {
|
||||||
this.update(peer.socket.remotePublicKey, { peer });
|
this.update(peer.stream.remotePublicKey, { peer });
|
||||||
this._registerOpenSocketMessage(peer, channel);
|
this._registerOpenSocketMessage(peer);
|
||||||
this._registerWriteSocketMessage(peer, channel);
|
this._registerWriteSocketMessage(peer);
|
||||||
this._registerCloseSocketMessage(peer, channel);
|
this._registerCloseSocketMessage(peer);
|
||||||
this._registerTimeoutSocketMessage(peer, channel);
|
this._registerTimeoutSocketMessage(peer);
|
||||||
this._registerErrorSocketMessage(peer, channel);
|
this._registerErrorSocketMessage(peer);
|
||||||
}
|
}
|
||||||
async handleClosePeer(peer) {
|
async handleClosePeer(peer) {
|
||||||
for (const item of this._sockets) {
|
for (const item of this._sockets) {
|
||||||
|
@ -142,9 +142,9 @@ class MultiSocketProxy extends proxy_js_1.default {
|
||||||
this._sockets.set(socketId, socket);
|
this._sockets.set(socketId, socket);
|
||||||
return socket;
|
return socket;
|
||||||
}
|
}
|
||||||
_registerOpenSocketMessage(peer, channel) {
|
_registerOpenSocketMessage(peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: {
|
encoding: {
|
||||||
preencode: compact_encoding_1.json.preencode,
|
preencode: compact_encoding_1.json.preencode,
|
||||||
encode: compact_encoding_1.json.encode,
|
encode: compact_encoding_1.json.encode,
|
||||||
|
@ -176,9 +176,9 @@ class MultiSocketProxy extends proxy_js_1.default {
|
||||||
messages: { openSocket: message },
|
messages: { openSocket: message },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_registerWriteSocketMessage(peer, channel) {
|
_registerWriteSocketMessage(peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: writeSocketEncoding,
|
encoding: writeSocketEncoding,
|
||||||
onmessage(m) {
|
onmessage(m) {
|
||||||
self._sockets.get(m.id)?.push(m.data);
|
self._sockets.get(m.id)?.push(m.data);
|
||||||
|
@ -188,9 +188,9 @@ class MultiSocketProxy extends proxy_js_1.default {
|
||||||
messages: { writeSocket: message },
|
messages: { writeSocket: message },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_registerCloseSocketMessage(peer, channel) {
|
_registerCloseSocketMessage(peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: socketEncoding,
|
encoding: socketEncoding,
|
||||||
onmessage(m) {
|
onmessage(m) {
|
||||||
self._sockets.get(m.id)?.end();
|
self._sockets.get(m.id)?.end();
|
||||||
|
@ -200,9 +200,9 @@ class MultiSocketProxy extends proxy_js_1.default {
|
||||||
messages: { closeSocket: message },
|
messages: { closeSocket: message },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_registerTimeoutSocketMessage(peer, channel) {
|
_registerTimeoutSocketMessage(peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: socketEncoding,
|
encoding: socketEncoding,
|
||||||
onmessage(m) {
|
onmessage(m) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
@ -213,9 +213,9 @@ class MultiSocketProxy extends proxy_js_1.default {
|
||||||
messages: { timeoutSocket: message },
|
messages: { timeoutSocket: message },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_registerErrorSocketMessage(peer, channel) {
|
_registerErrorSocketMessage(peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: errorSocketEncoding,
|
encoding: errorSocketEncoding,
|
||||||
onmessage(m) {
|
onmessage(m) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|
|
@ -4,6 +4,7 @@ import MultiSocketProxy from "../multiSocket.js";
|
||||||
export default class Peer extends BasePeer {
|
export default class Peer extends BasePeer {
|
||||||
protected _proxy: MultiSocketProxy;
|
protected _proxy: MultiSocketProxy;
|
||||||
protected initSocket(): Promise<void>;
|
protected initSocket(): Promise<void>;
|
||||||
|
get stream(): any;
|
||||||
protected handleChannelOnClose(socket: Socket): Promise<void>;
|
protected handleChannelOnClose(socket: Socket): Promise<void>;
|
||||||
protected handleChannelOnOpen(m: any): Promise<void>;
|
protected handleChannelOnOpen(m: any): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const peer_js_1 = __importDefault(require("../../peer.js"));
|
const peer_js_1 = __importDefault(require("../../peer.js"));
|
||||||
class Peer extends peer_js_1.default {
|
class Peer extends peer_js_1.default {
|
||||||
async initSocket() { }
|
async initSocket() { }
|
||||||
|
get stream() {
|
||||||
|
return this._muxer.stream;
|
||||||
|
}
|
||||||
async handleChannelOnClose(socket) {
|
async handleChannelOnClose(socket) {
|
||||||
return this._proxy.handleClosePeer(this);
|
return this._proxy.handleClosePeer(this);
|
||||||
}
|
}
|
||||||
async handleChannelOnOpen(m) {
|
async handleChannelOnOpen(m) {
|
||||||
await this._proxy.handleNewPeerChannel(this._peer, this._channel);
|
await this._proxy.handleNewPeerChannel(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.default = Peer;
|
exports.default = Peer;
|
||||||
|
|
|
@ -113,14 +113,14 @@ export default class MultiSocketProxy extends Proxy {
|
||||||
return this._sockets;
|
return this._sockets;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleNewPeerChannel(peer: Peer, channel: any) {
|
handleNewPeerChannel(peer: Peer) {
|
||||||
this.update(peer.socket.remotePublicKey, { peer });
|
this.update(peer.stream.remotePublicKey, { peer });
|
||||||
|
|
||||||
this._registerOpenSocketMessage(peer, channel);
|
this._registerOpenSocketMessage(peer);
|
||||||
this._registerWriteSocketMessage(peer, channel);
|
this._registerWriteSocketMessage(peer);
|
||||||
this._registerCloseSocketMessage(peer, channel);
|
this._registerCloseSocketMessage(peer);
|
||||||
this._registerTimeoutSocketMessage(peer, channel);
|
this._registerTimeoutSocketMessage(peer);
|
||||||
this._registerErrorSocketMessage(peer, channel);
|
this._registerErrorSocketMessage(peer);
|
||||||
}
|
}
|
||||||
|
|
||||||
async handleClosePeer(peer: Peer) {
|
async handleClosePeer(peer: Peer) {
|
||||||
|
@ -175,9 +175,9 @@ export default class MultiSocketProxy extends Proxy {
|
||||||
return socket;
|
return socket;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _registerOpenSocketMessage(peer: Peer, channel: any) {
|
private _registerOpenSocketMessage(peer: Peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: {
|
encoding: {
|
||||||
preencode: json.preencode,
|
preencode: json.preencode,
|
||||||
encode: json.encode,
|
encode: json.encode,
|
||||||
|
@ -223,9 +223,9 @@ export default class MultiSocketProxy extends Proxy {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _registerWriteSocketMessage(peer: Peer, channel: any) {
|
private _registerWriteSocketMessage(peer: Peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: writeSocketEncoding,
|
encoding: writeSocketEncoding,
|
||||||
onmessage(m: WriteSocketRequest) {
|
onmessage(m: WriteSocketRequest) {
|
||||||
self._sockets.get(m.id)?.push(m.data);
|
self._sockets.get(m.id)?.push(m.data);
|
||||||
|
@ -236,9 +236,9 @@ export default class MultiSocketProxy extends Proxy {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _registerCloseSocketMessage(peer: Peer, channel: any) {
|
private _registerCloseSocketMessage(peer: Peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: socketEncoding,
|
encoding: socketEncoding,
|
||||||
onmessage(m: CloseSocketRequest) {
|
onmessage(m: CloseSocketRequest) {
|
||||||
self._sockets.get(m.id)?.end();
|
self._sockets.get(m.id)?.end();
|
||||||
|
@ -249,9 +249,9 @@ export default class MultiSocketProxy extends Proxy {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _registerTimeoutSocketMessage(peer: Peer, channel: any) {
|
private _registerTimeoutSocketMessage(peer: Peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: socketEncoding,
|
encoding: socketEncoding,
|
||||||
onmessage(m: SocketRequest) {
|
onmessage(m: SocketRequest) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
@ -263,9 +263,9 @@ export default class MultiSocketProxy extends Proxy {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _registerErrorSocketMessage(peer: Peer, channel: any) {
|
private _registerErrorSocketMessage(peer: Peer) {
|
||||||
const self = this;
|
const self = this;
|
||||||
const message = channel.addMessage({
|
const message = peer.channel.addMessage({
|
||||||
encoding: errorSocketEncoding,
|
encoding: errorSocketEncoding,
|
||||||
onmessage(m: ErrorSocketRequest) {
|
onmessage(m: ErrorSocketRequest) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|
|
@ -6,11 +6,15 @@ export default class Peer extends BasePeer {
|
||||||
protected declare _proxy: MultiSocketProxy;
|
protected declare _proxy: MultiSocketProxy;
|
||||||
protected async initSocket() {}
|
protected async initSocket() {}
|
||||||
|
|
||||||
|
get stream(): any {
|
||||||
|
return this._muxer.stream;
|
||||||
|
}
|
||||||
|
|
||||||
protected async handleChannelOnClose(socket: Socket): Promise<void> {
|
protected async handleChannelOnClose(socket: Socket): Promise<void> {
|
||||||
return this._proxy.handleClosePeer(this);
|
return this._proxy.handleClosePeer(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async handleChannelOnOpen(m: any): Promise<void> {
|
protected async handleChannelOnOpen(m: any): Promise<void> {
|
||||||
await this._proxy.handleNewPeerChannel(this._peer, this._channel);
|
await this._proxy.handleNewPeerChannel(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue