节点JS RCON 客户端
$ npm install @0x0c/rcon
一个零依赖性,完全类型的Node.js库,为与服务器交互提供客户端 支助 RCON 协议。 。 。 .
支持多包回放,超时并排出框.
快速启动
import {RconClient} from '@0x0c/rcon';
const rcon = new RconClient({
host: '127.0.0.1',
port: 27015,
password: '<my-rcon-password>',
});
async function queryStatus() {
const [status, stats] = await Promise.all([rcon.send('status'), rcon.send('stats')]);
myCustomParserForStatusCommandResponse(status);
parseAndStoreServerStats(stats);
// close connection when it is not required anymore
rcon.disconnect();
}
queryStatus();
API 密码
new RconClient(options): RconClient
| 参数 | 类型 | 说明 |
|---|---|---|
options | 对象 | 选项 |
options.host | 字符串 | 服务器的IP地址或主机名 |
options.port | 编号 | RCON 端口 |
options.password | 字符串 | RCON 密码 |
[options.timeout=5000[ . ] | 编号 | 可选的 以毫秒计的响应超时 。 默认 : 5000 |
RconClient.connect(): Promise<void>
连接到服务器 。 此方法在发送第一个命令时会自动调用, 但是您可以手动调用它 如果您想检查之后的连接状态.
RconClient.connected: boolean
显示客户端是否连接到服务器的属性 .
RconClient.send(command, options?): Promise<string>
向服务器发送命令, 将回复作为字符串 .
| 参数 | 类型 | 说明 |
|---|---|---|
command | 字符串 | 要发送的命令 |
[options[ . ] | 对象 | 可选的 选项 |
[options.timeout[ . ] | 编号 | 可选的 设置此命令的超时与连接超时分开 。 默认: 等于连接超时 |
[options.multipacket=true[ . ] | 布尔 | 可选的 使用帮助读取多包响应的"边界包"发送至少两个命令. 默认 : true |
RconClient.disconnect(): void
关闭连接到服务器 。 连接在命令之间保持活性,所以您应该使用这种方法 为了腾出资源.
页:1
默认情况下,所有命令都会按预期发送 多包反应。 。 。 .
然而,这意味着,即使最小的答复也可能需要两倍的时间(大概)才能解决,因为有两个包是: 已队列: 命令本身的软件包, 以及“ 边界” 软件包( 帮助连接客户端的垃圾包) 了解当服务器完成对先前序列包的回复时.
您可以在发送时禁用此特性 :
const stats = await rcon.send('stats', {multipacket: false});