diff --git a/package.json b/package.json index 100228b..31f1d69 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "typescript": "^4.9.4" }, "dependencies": { + "buffer": "^6.0.3", "compact-encoding": "^2.11.0", "protomux": "^3.4.0", "streamx": "^2.13.0" diff --git a/src/peer.ts b/src/peer.ts index c7d3bf7..3655324 100644 --- a/src/peer.ts +++ b/src/peer.ts @@ -1,5 +1,6 @@ import Proxy from "./proxy.js"; import Socket from "./socket.js"; +import { Buffer } from "buffer"; export type OnOpen = ( socket: Socket, data: any @@ -70,6 +71,10 @@ export default class Peer { if (!m) { m = Buffer.from([]); } + + if (m instanceof Uint8Array) { + m = Buffer.from(m); + } self._socket = new Socket({ remoteAddress: self._peer.rawStream.remoteHost, remotePort: self._peer.rawStream.remotePort, @@ -81,6 +86,7 @@ export default class Peer { // @ts-ignore self._socket.emit("connect"); } + self._socket.emit("data", m); }, async onclose() { @@ -90,6 +96,9 @@ export default class Peer { }); const pipe = channel.addMessage({ async onmessage(m: any) { + if (m instanceof Uint8Array) { + m = Buffer.from(m); + } self._socket.emit("data", m); await self._onreceive?.(m); },