Compare commits

...

5 Commits

9 changed files with 41 additions and 24 deletions

13
dist/peer.js vendored
View File

@ -33,12 +33,21 @@ class Peer {
const self = this;
this._channel = await this._muxer.createChannel({
protocol: this._proxy.protocol,
onopen: this.handleChannelOnOpen.bind(this),
onclose: this.handleChannelOnClose.bind(this),
onopen: async (m) => {
await this.handleChannelOnOpen(m);
// @ts-ignore
await this._onopen?.(this._channel);
},
onclose: async (socket) => {
await this.handleChannelOnClose(socket);
// @ts-ignore
await this._onclose?.();
},
});
await this.initMessages();
await this._onchannel?.(this._channel);
await this._channel.open();
this._proxy.emit("peerChannelOpen", this);
}
async init() {
await this.initSocket();

View File

@ -41,7 +41,6 @@ class Peer extends peer_js_1.default {
}
async handleChannelOnClose(socket) {
this._socket?.destroy();
await this._onclose?.(this._socket);
}
async initMessages() {
const self = this;

View File

@ -149,7 +149,7 @@ class MultiSocketProxy extends proxy_js_1.default {
}
async _registerOpenSocketMessage(peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: {
preencode: compact_encoding_1.json.preencode,
encode: compact_encoding_1.json.encode,
@ -183,7 +183,7 @@ class MultiSocketProxy extends proxy_js_1.default {
}
async _registerWriteSocketMessage(peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: writeSocketEncoding,
onmessage(m) {
self._sockets.get(m.id)?.push(m.data);
@ -195,7 +195,7 @@ class MultiSocketProxy extends proxy_js_1.default {
}
async _registerCloseSocketMessage(peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m) {
self._sockets.get(m.id)?.end();
@ -207,7 +207,7 @@ class MultiSocketProxy extends proxy_js_1.default {
}
async _registerTimeoutSocketMessage(peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m) {
// @ts-ignore
@ -220,7 +220,7 @@ class MultiSocketProxy extends proxy_js_1.default {
}
async _registerErrorSocketMessage(peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: errorSocketEncoding,
onmessage(m) {
// @ts-ignore

View File

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

View File

@ -5,6 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
const peer_js_1 = __importDefault(require("../../peer.js"));
class Peer extends peer_js_1.default {
async initMessages() {
await this._proxy.handleNewPeerChannel(this);
}
async initSocket() { }
get stream() {
return this._muxer.stream;
@ -12,9 +15,6 @@ class Peer extends peer_js_1.default {
async handleChannelOnClose(socket) {
return this._proxy.handleClosePeer(this);
}
async handleChannelOnOpen(m) {
await this._proxy.handleNewPeerChannel(this);
this._proxy.emit("peerOpen", this);
}
async handleChannelOnOpen(m) { }
}
exports.default = Peer;

View File

@ -105,14 +105,23 @@ export default abstract class Peer {
this._channel = await this._muxer.createChannel({
protocol: this._proxy.protocol,
onopen: this.handleChannelOnOpen.bind(this),
onclose: this.handleChannelOnClose.bind(this),
onopen: async (m: any) => {
await this.handleChannelOnOpen(m);
// @ts-ignore
await this._onopen?.(this._channel);
},
onclose: async (socket: Socket) => {
await this.handleChannelOnClose(socket);
// @ts-ignore
await this._onclose?.();
},
});
await this.initMessages();
await this._onchannel?.(this._channel);
await this._channel.open();
this._proxy.emit("peerChannelOpen", this);
}
async init() {

View File

@ -43,7 +43,6 @@ export default class Peer extends BasePeer {
protected async handleChannelOnClose(socket: Socket): Promise<void> {
this._socket?.destroy();
await this._onclose?.(this._socket);
}
protected async initMessages(): Promise<void> {

View File

@ -189,7 +189,7 @@ export default class MultiSocketProxy extends Proxy {
private async _registerOpenSocketMessage(peer: Peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: {
preencode: json.preencode,
encode: json.encode,
@ -237,7 +237,7 @@ export default class MultiSocketProxy extends Proxy {
private async _registerWriteSocketMessage(peer: Peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: writeSocketEncoding,
onmessage(m: WriteSocketRequest) {
self._sockets.get(m.id)?.push(m.data);
@ -250,7 +250,7 @@ export default class MultiSocketProxy extends Proxy {
private async _registerCloseSocketMessage(peer: Peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m: CloseSocketRequest) {
self._sockets.get(m.id)?.end();
@ -263,7 +263,7 @@ export default class MultiSocketProxy extends Proxy {
private async _registerTimeoutSocketMessage(peer: Peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: socketEncoding,
onmessage(m: SocketRequest) {
// @ts-ignore
@ -277,7 +277,7 @@ export default class MultiSocketProxy extends Proxy {
private async _registerErrorSocketMessage(peer: Peer) {
const self = this;
const message = peer.channel.addMessage({
const message = await peer.channel.addMessage({
encoding: errorSocketEncoding,
onmessage(m: ErrorSocketRequest) {
// @ts-ignore

View File

@ -3,6 +3,9 @@ import Socket from "../../socket.js";
import MultiSocketProxy from "../multiSocket.js";
export default class Peer extends BasePeer {
protected async initMessages(): Promise<void> {
await this._proxy.handleNewPeerChannel(this);
}
protected declare _proxy: MultiSocketProxy;
protected async initSocket() {}
@ -14,8 +17,5 @@ export default class Peer extends BasePeer {
return this._proxy.handleClosePeer(this);
}
protected async handleChannelOnOpen(m: any): Promise<void> {
await this._proxy.handleNewPeerChannel(this);
this._proxy.emit("peerOpen", this);
}
protected async handleChannelOnOpen(m: any): Promise<void> {}
}