*Move socket creation outside channel onopen
This commit is contained in:
parent
619fe7913c
commit
2e639eb92a
25
src/peer.ts
25
src/peer.ts
|
@ -95,12 +95,19 @@ export default class Peer {
|
||||||
}
|
}
|
||||||
|
|
||||||
async init() {
|
async init() {
|
||||||
const write = async (data: any, cb: Function) => {
|
|
||||||
pipe.send(data);
|
|
||||||
await this._onsend?.(data);
|
|
||||||
cb();
|
|
||||||
};
|
|
||||||
const self = this;
|
const self = this;
|
||||||
|
this._socket = new Socket({
|
||||||
|
remoteAddress: self._peer.rawStream.remoteHost,
|
||||||
|
remotePort: self._peer.rawStream.remotePort,
|
||||||
|
remotePublicKey: self._peer.remotePublicKey,
|
||||||
|
async write(data: any, cb: Function) {
|
||||||
|
pipe.send(data);
|
||||||
|
await self._onsend?.(data);
|
||||||
|
cb();
|
||||||
|
},
|
||||||
|
emulateWebsocket: self._emulateWebsocket,
|
||||||
|
});
|
||||||
|
|
||||||
this._channel = this._muxer.createChannel({
|
this._channel = this._muxer.createChannel({
|
||||||
protocol: this._proxy.protocol,
|
protocol: this._proxy.protocol,
|
||||||
async onopen(m: any) {
|
async onopen(m: any) {
|
||||||
|
@ -111,13 +118,7 @@ export default class Peer {
|
||||||
if (m instanceof Uint8Array) {
|
if (m instanceof Uint8Array) {
|
||||||
m = Buffer.from(m);
|
m = Buffer.from(m);
|
||||||
}
|
}
|
||||||
self._socket = new Socket({
|
|
||||||
remoteAddress: self._peer.rawStream.remoteHost,
|
|
||||||
remotePort: self._peer.rawStream.remotePort,
|
|
||||||
remotePublicKey: self._peer.remotePublicKey,
|
|
||||||
write,
|
|
||||||
emulateWebsocket: self._emulateWebsocket,
|
|
||||||
});
|
|
||||||
self._socket.on("end", () => this._channel.close());
|
self._socket.on("end", () => this._channel.close());
|
||||||
let ret = await self._onopen?.(self._socket, m);
|
let ret = await self._onopen?.(self._socket, m);
|
||||||
if (!ret || (ret && ret.connect === false)) {
|
if (!ret || (ret && ret.connect === false)) {
|
||||||
|
|
Loading…
Reference in New Issue