@nick-iotex/w3bstream-http-client-simulator
v1.2.2
Published
This README provides an overview of the Simulator module, which is designed to generate and send simulated data points to the W3BSTREAM server.
Readme
Simulator README
This README provides an overview of the Simulator module, which is designed to generate and send simulated data points to the W3BSTREAM server.
Table of Contents
- Getting Started
- Usage
Getting Started
To use the Simulator module, you need to import it along with some dependencies:
import {
Simulator,
DataPointGenerator,
} from "@nick-iotex/w3bstream-http-client-simulator";Usage
Create message generator
Deside what the shape of the data point should be:
type TemperatureDataPoint = {
temperature: number;
timestamp: number;
};And how the data point should be generated, you can use randomizer or timestampGenerator methods of DataPointGenerator:
const generatorFunction = () => ({
temperature: DataPointGenerator.randomizer(0, 100),
timestamp: DataPointGenerator.timestampGenerator(),
});And finally, to generate messages, instantiate data generator:
const dataGenerator = new DataPointGenerator<TemperatureDataPoint>(
generatorFunction
);Simulator initialization
Create a new instance of the Simulator class, initialize it and set a DataPointGenerator that you created earlier:
const simulator = new Simulator(pubId, pubToken, w3bstreamEndpoint);
simulator.init();
simulator.dataPointGenerator = dataGenerator;You can also provide an optional pathToPrivateKey parameter:
simulator.init(pathToPrivateKey);Now you can generate a message with a single or multiple events:
const message = simulator.generateEvents(numberOfDataPoints);Sending Messages
To send a single message to the server, call the sendSingleMessage method:
const res = simulator.sendSingleMessage();To send messages at a specified interval, use the powerOn method:
simulator.powerOn(intervalInSec);To stop sending messages, call the powerOff method:
simulator.powerOff();