SlimIO TCP Socket SDK. This package has been created to help developer to communicate with the product (Require the Socket Addon on the SlimIO agent you want to communicate to).
⚠️ TCP SDK will automatically search and request informations from the built-in Gate addon.
- Node.js v12 or higher
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
$ npm i @slimio/tcp-sdk
# or
$ yarn add @slimio/tcp-sdk
const TcpSdk = require("@slimio/tcp-sdk");
const CONNECT_TIMEOUT_MS = 1000;
async function main() {
const client = new TcpSdk();
await client.once("connect", CONNECT_TIMEOUT_MS);
try {
const info = await client.sendOne("cpu.status");
console.log(info);
}
finally {
client.close();
}
}
main().catch(console.error);
constructor(options?: TcpClient.ConstructorOptions)
Create and instanciate a new TCP Connection to the socket server. Listen for event connection to known when you'r ready to send messages.
Options is described by the following interface:
interface ConstructorOptions {
host?: string;
port?: number;
}
Default value of port would be TcpClient.DEFAULT_PORT.
getActiveAddons(): Promise< String[] >
Return the list of active addons on the current agent.
ping(): Promise< void >
Send a ping event (avoid timeout).
sendMessage(target: string, args?: any[]): ZenObservable.ObservableLike< any >
send a callback message.
sendOne< T >(target: string, args?: any[]): Promise< any >
send a callback message wrapped by a Promise.
connect(): Promise< void >
Connect (or re-connect) the Net.socket. If the Socket is alive it will return.
close(): void
Close the TCP (Socket) connection.
readonly agent(): TcpClient.AgentInfo | null
The readonly getter is described by the following TypeScript interface:
interface AgentInfo {
location: string;
version: string;
}
Name | Refactoring | Security Risk | Usage |
---|---|---|---|
@slimio/safe-emitter | Minor | Medium | Node.js Safe Emitter |
@lukeed/uuid | Minor | Low | Generate Unique ID |
zen-observable | Minor | Low | Observable Implementation |
MIT