lowercasebtw
lowercasebtw•5mo ago

Stupid Broken Pipe

how do I handle this without the thing just quitting, I've put try catches everywhere
No description
9 Replies
lowercasebtw
lowercasebtwOP•5mo ago
I need this to not quit on these kinds of errors its annoying why is there no method to check if its writable at the time or whatever, ughhhh i'm also supossidely/most definitely losing data/packets somehow and I can't have that happening
ioB
ioB•5mo ago
can you share code
lowercasebtw
lowercasebtwOP•5mo ago
Gimme a second (few mins) Not at pc rn Ugh
lowercasebtw
lowercasebtwOP•5mo ago
No description
lowercasebtw
lowercasebtwOP•5mo ago
async listen() {
this.server = new Server({
hostname: this.address,
port: this.port,
chunkSize: MAX_BYTES_ALLOWED
});

this.server.on("listen", () => Logger.log(Level.INFO, `Listening on ${this.address}:${this.port}`));

this.server.on("connect", (client: Client) => {
const connection = new ClientConnection(client);
this.connections.set(client, connection);
Logger.log(Level.INFO, `Client ${connection.id} connected!`);

client.addListener("receive", async (_, packet: Packet) => {
const reader = new ByteReader(packet.data);
reader.read(Type.VAR_INT) as number; // TODO: packet length?
const packet_id = reader.read(Type.VAR_INT) as number;
await connection.handle(this, reader, packet, packet_id);
});

client.addListener("close", async () => {
Logger.log(Level.INFO, `Client ${connection.id} disconnected!`);
// TODO: cleanup?
await connection.close();
this.connections.delete(client);
});
});

await this.server.listen();
}
async listen() {
this.server = new Server({
hostname: this.address,
port: this.port,
chunkSize: MAX_BYTES_ALLOWED
});

this.server.on("listen", () => Logger.log(Level.INFO, `Listening on ${this.address}:${this.port}`));

this.server.on("connect", (client: Client) => {
const connection = new ClientConnection(client);
this.connections.set(client, connection);
Logger.log(Level.INFO, `Client ${connection.id} connected!`);

client.addListener("receive", async (_, packet: Packet) => {
const reader = new ByteReader(packet.data);
reader.read(Type.VAR_INT) as number; // TODO: packet length?
const packet_id = reader.read(Type.VAR_INT) as number;
await connection.handle(this, reader, packet, packet_id);
});

client.addListener("close", async () => {
Logger.log(Level.INFO, `Client ${connection.id} disconnected!`);
// TODO: cleanup?
await connection.close();
this.connections.delete(client);
});
});

await this.server.listen();
}
Doctor 🤖
Doctor 🤖•5mo ago
Is this all the code?
lowercasebtw
lowercasebtwOP•5mo ago
its enough to reproduce the error minus a few spots the issue is with this lib from "https://deno.land/x/tcp_socket@0.0.2/mods.ts"; @lino-levan .
marvinh.
marvinh.•5mo ago
@lowercasebtw Can you file an issue for this here https://github.com/denoland/deno/issues/new?template=bug_report.md ? The developers all hang out on GitHub and the best way to get bugs resolved is to post an issue over there.
lowercasebtw
lowercasebtwOP•5mo ago
alright

Did you find this page helpful?