Package Exports
- rcon-ts
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rcon-ts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
rcon-ts
A modern RCON client implementation written in TypeScript (targeting ES2015) and is async/await friendly.
(Originally node-modern-rcon.)
Installation
npm install rcon-ts --saveAPI
Initialization
Creates a new Rcon object.
import Rcon from 'rcon-ts';
const rcon = new Rcon({
host: "host-path",
port: 25575 /*default*/,
password: "required",
timeout: 5000 /*default (5 seconds)*/
});Connecting
Connects with the credentials provided in the constructor. Can be awaited on.
rcon.connect();Sending
Executes the provided command on the active connection and returns the response.
let response = await rcon.send("[rcon request]");Disconnecting
Ends the current socket and subsequently signals to any pending request that the connection was disconnected.
rcon.disconnect();Sessions
To simplify the usage, you can use the session method.
// Single command:
rcon
.session(c => c.send("one")) // connects, sends, and then disconnects.
.then(()=>console.log("first session complete"), console.error);
// Multiple commands:
rcon
.session(async c => {
await c.send("two");
await c.send("three");
})
.then(()=>console.log("second session complete"), console.error);Any number of conccurrent sessions can be active on a single connection and once they've all completed the connection will end.
session takes a promise factory as a parameter and passes the current Rcon instance as the first param (optional) to the factory.
Usage Examples
async function sendHelp()
{
rcon.connect();
// safe to immediately setup requests without waiting.
console.log(await rcon.send('/help'));
rcon.disconnect();
}
sendHelp().finally(() =>
{
const errors = rcon.errors;
if(errors.length) console.warn("Errors:",errors);
});Or simply...
rcon
.session(c => c.send('/help'))
.then(console.log, console.error);Factorio
Setup:
For usage or testing, make sure you are starting the game from command line or connecting to an rcon configured remote instance.
factorio.exe --start-server [save-name].zip --rcon-port [port] --rcon-password [password]
Verifying it's working:
Try either one of the examples above.