Compare commits

...

2 Commits

6 changed files with 45 additions and 37 deletions

View File

@ -21,7 +21,7 @@ export default class MultiSocketProxy extends Proxy {
get socketMap(): Map<number, number>;
private _sockets;
get sockets(): Map<number, any>;
handleNewPeerChannel(peer: Peer, channel: any): void;
handleNewPeerChannel(peer: Peer): void;
handleClosePeer(peer: Peer): Promise<void>;
get(pubkey: Uint8Array): PeerEntity | undefined;
update(pubkey: Uint8Array, data: Partial<PeerEntity>): void;

View File

@ -94,13 +94,13 @@ class MultiSocketProxy extends proxy_js_1.default {
get sockets() {
return this._sockets;
}
handleNewPeerChannel(peer, channel) {
this.update(peer.socket.remotePublicKey, { peer });
this._registerOpenSocketMessage(peer, channel);
this._registerWriteSocketMessage(peer, channel);
this._registerCloseSocketMessage(peer, channel);
this._registerTimeoutSocketMessage(peer, channel);
this._registerErrorSocketMessage(peer, channel);
handleNewPeerChannel(peer) {
this.update(peer.stream.remotePublicKey, { peer });
this._registerOpenSocketMessage(peer);
this._registerWriteSocketMessage(peer);
this._registerCloseSocketMessage(peer);
this._registerTimeoutSocketMessage(peer);
this._registerErrorSocketMessage(peer);
}
async handleClosePeer(peer) {
for (const item of this._sockets) {
@ -142,9 +142,9 @@ class MultiSocketProxy extends proxy_js_1.default {
this._sockets.set(socketId, socket);
return socket;
}
_registerOpenSocketMessage(peer, channel) {
_registerOpenSocketMessage(peer) {
const self = this;
const message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: {
preencode: compact_encoding_1.json.preencode,
encode: compact_encoding_1.json.encode,
@ -176,9 +176,9 @@ class MultiSocketProxy extends proxy_js_1.default {
messages: { openSocket: message },
});
}
_registerWriteSocketMessage(peer, channel) {
_registerWriteSocketMessage(peer) {
const self = this;
const message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: writeSocketEncoding,
onmessage(m) {
self._sockets.get(m.id)?.push(m.data);
@ -188,9 +188,9 @@ class MultiSocketProxy extends proxy_js_1.default {
messages: { writeSocket: message },
});
}
_registerCloseSocketMessage(peer, channel) {
_registerCloseSocketMessage(peer) {
const self = this;
const message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m) {
self._sockets.get(m.id)?.end();
@ -200,9 +200,9 @@ class MultiSocketProxy extends proxy_js_1.default {
messages: { closeSocket: message },
});
}
_registerTimeoutSocketMessage(peer, channel) {
_registerTimeoutSocketMessage(peer) {
const self = this;
const message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m) {
// @ts-ignore
@ -213,9 +213,9 @@ class MultiSocketProxy extends proxy_js_1.default {
messages: { timeoutSocket: message },
});
}
_registerErrorSocketMessage(peer, channel) {
_registerErrorSocketMessage(peer) {
const self = this;
const message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: errorSocketEncoding,
onmessage(m) {
// @ts-ignore

View File

@ -4,6 +4,7 @@ import MultiSocketProxy from "../multiSocket.js";
export default class Peer extends BasePeer {
protected _proxy: MultiSocketProxy;
protected initSocket(): Promise<void>;
get stream(): any;
protected handleChannelOnClose(socket: Socket): Promise<void>;
protected handleChannelOnOpen(m: any): Promise<void>;
}

View File

@ -6,11 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
const peer_js_1 = __importDefault(require("../../peer.js"));
class Peer extends peer_js_1.default {
async initSocket() { }
get stream() {
return this._muxer.stream;
}
async handleChannelOnClose(socket) {
return this._proxy.handleClosePeer(this);
}
async handleChannelOnOpen(m) {
await this._proxy.handleNewPeerChannel(this._peer, this._channel);
await this._proxy.handleNewPeerChannel(this);
}
}
exports.default = Peer;

View File

@ -113,14 +113,14 @@ export default class MultiSocketProxy extends Proxy {
return this._sockets;
}
handleNewPeerChannel(peer: Peer, channel: any) {
this.update(peer.socket.remotePublicKey, { peer });
handleNewPeerChannel(peer: Peer) {
this.update(peer.stream.remotePublicKey, { peer });
this._registerOpenSocketMessage(peer, channel);
this._registerWriteSocketMessage(peer, channel);
this._registerCloseSocketMessage(peer, channel);
this._registerTimeoutSocketMessage(peer, channel);
this._registerErrorSocketMessage(peer, channel);
this._registerOpenSocketMessage(peer);
this._registerWriteSocketMessage(peer);
this._registerCloseSocketMessage(peer);
this._registerTimeoutSocketMessage(peer);
this._registerErrorSocketMessage(peer);
}
async handleClosePeer(peer: Peer) {
@ -175,9 +175,9 @@ export default class MultiSocketProxy extends Proxy {
return socket;
}
private _registerOpenSocketMessage(peer: Peer, channel: any) {
private _registerOpenSocketMessage(peer: Peer) {
const self = this;
const message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: {
preencode: json.preencode,
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 message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: writeSocketEncoding,
onmessage(m: WriteSocketRequest) {
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 message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m: CloseSocketRequest) {
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 message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m: SocketRequest) {
// @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 message = channel.addMessage({
const message = peer.channel.addMessage({
encoding: errorSocketEncoding,
onmessage(m: ErrorSocketRequest) {
// @ts-ignore

View File

@ -6,11 +6,15 @@ export default class Peer extends BasePeer {
protected declare _proxy: MultiSocketProxy;
protected async initSocket() {}
get stream(): any {
return this._muxer.stream;
}
protected async handleChannelOnClose(socket: Socket): Promise<void> {
return this._proxy.handleClosePeer(this);
}
protected async handleChannelOnOpen(m: any): Promise<void> {
await this._proxy.handleNewPeerChannel(this._peer, this._channel);
await this._proxy.handleNewPeerChannel(this);
}
}