diff --git a/Cargo.toml b/Cargo.toml index ae5e58e..9129f0e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ crate-type = ["cdylib"] [dependencies] rusty_enet = { git = "https://github.com/JadlionHD/rusty_enet.git" } +# rusty_enet = { path = "D:\\Projects\\NodeJS_Projects\\StileDevs\\rusty_enet" } # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix napi = { version = "2.12.2", default-features = false, features = ["napi4"] } napi-derive = "2.12.2" diff --git a/__test__/test.js b/__test__/test.js index 25fc98b..9b0553d 100644 --- a/__test__/test.js +++ b/__test__/test.js @@ -12,11 +12,15 @@ const { Client } = require("../dist/index.js"); const server = new Client({ enet: { useNewPacket: { - asServer: true + asServer: false, + asClient: false } } }); +// server.connect("0.0.0.0", 17091); +// server.host.disconnectNow(0); + server.on("connect", (netID) => { console.log("Connected ", netID); server.send(netID, 0, TextPacket.from(0x1)); @@ -39,7 +43,6 @@ server.listen(); await item.decode(); await item.encode(); - console.log(server.host.port); })(); async function Web() { @@ -67,9 +70,9 @@ async function Web() { let str = ""; str += `server|127.0.0.1\n`; + // str += `type2|1\n`; - const randPort = 17091; - str += `port|${randPort}\nloginurl|login.growserver.app:8080\ntype|1\n#maint|test\nmeta|ignoremeta\nRTENDMARKERBS1001`; + str += `port|17091\nloginurl|login.growserver.app:8080\ntype|1\n#maint|test\nmeta|ignoremeta\nRTENDMARKERBS1001`; return ctx.body(str); }); @@ -98,16 +101,6 @@ async function Web() { return ctx.html(html); }); - serve( - { - fetch: app.fetch, - port: 80 - }, - (info) => { - console.log(`⛅ Running HTTP server on http://localhost`); - } - ); - serve( { fetch: app.fetch, diff --git a/package.json b/package.json index a032e72..c30a91c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "growtopia.js", "description": "A Rust based, cross-platform, high-performance Growtopia private server framework utilizing Node.js, Bun.js.", - "version": "2.0.9", + "version": "2.0.10", "main": "./dist/index.js", "types": "./dist/index.d.ts", "exports": { diff --git a/src/host.rs b/src/host.rs index 9673f36..4a0f1ef 100644 --- a/src/host.rs +++ b/src/host.rs @@ -11,9 +11,6 @@ use std::{net::SocketAddr, net::UdpSocket}; pub struct Host { host: enet::Host, emitter: Option>, - ip_address: String, - port: u16, - using_new_packet: bool, } #[napi] @@ -30,7 +27,11 @@ impl Host { let host_addr: String = format!("{ip_address}:{port}"); let socket = if using_new_packet { - UdpSocket::bind(SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::UNSPECIFIED, 0))).unwrap() + UdpSocket::bind(SocketAddr::V4(SocketAddrV4::new( + Ipv4Addr::UNSPECIFIED, + port, + ))) + .unwrap() } else { UdpSocket::bind(SocketAddr::from_str(&host_addr).unwrap()).unwrap() }; @@ -52,9 +53,6 @@ impl Host { Host { host, emitter: None, - ip_address, - port, - using_new_packet, } } @@ -102,6 +100,12 @@ impl Host { format!("Failed to set 'ip': {:?}", err), )); } + if let Err(err) = js_peer.set("state", peer.state() as u8) { + return Err(Error::new( + Status::GenericFailure, + format!("Failed to set 'ip': {:?}", err), + )); + } Ok(js_peer) } else { @@ -237,10 +241,11 @@ impl Host { }, Ok(None) => {} Err(e) if e.kind() == std::io::ErrorKind::ConnectionReset => { - // eprintln!("Connection reset. Retrying..."); + // eprintln!("Connection reset: {:?}", e); // ignore } Err(e) => { + // eprintln!("Error connection: {:?}", e); return Err(Error::new( Status::GenericFailure, format!("ENet service error: {}", e),