Reactive XComponent is a javaScript client API that allows you to interact with microservices generated with XComponent software.
install the latest version of the API:
npm :
npm i reactivexcomponent.js --save
yarn :
yarn add reactivexcomponent.js
Import in JS :
import xcomponent from 'reactivexcomponent.js';
Import in TS :
import { XComponent } from 'reactivexcomponent.js';
const xcomponent = new XComponent();
Set/Get LogLevel of the API :
import { LogLevel } from 'reactivexcomponent.js';
xcomponent.setLogLevel(LogLevel.DEBUG);
const logLevel = xcomponent.getLogLevel();
Connect to XComponent WebSocket Bridge :
const serverUrl = 'ws://localhost:443';
xcomponent.connect(serverUrl)
.then(connection => {
// Here goes your code that uses the connection
});
Get the list of available APIs on the WebSocket Bridge :
connection.getXcApiList().then(apiList => {
apiList.forEach(api => console.log('Available Api : ' + api));
});
Create a Session on a specific API :
const xcApiName = "HelloWorldApi.xcApi"
connection.createSession(xcApiName)
.then(session => {
// Here goes your code that uses the session
});
Variables used in the following examples :
const componentName = "HelloWorld";
const stateMachineName = "HelloWorldManager";
const stateMachineResponse = "HelloWorldResponse";
const jsonMessage = { "Name": "Test" };
const messageType = "XComponent.HelloWorld.UserObject.SayHello";
Get the Snapshot using a Session :
session.getSnapshot(componentName, stateMachineName)
.then(snapshot => {
snapshot.forEach(snapshotElement => console.log('Element : ' + snapshotElement));
});
Get StateMachine updates through an Observable using a Session :
const updates$ = session.getStateMachineUpdates(componentName, stateMachineResponse);
Send a message to all instances of a state machine using a Session :
// You can use the method canSend to check if the session is alowed the send this event to this state machine.
if (session.canSend(componentName, stateMachineName, messageType)) {
session.send(componentName, stateMachineName, messageType, jsonMessage);
}
Send a message to a specific state machine instance using a StateMachineInstance or StateMachineRef :
stateMachineInstance.send(messageType, jsonMessage);
Download the source code and execute the following commands:
yarn install
yarn build
xcomponentapi.js is built in the lib folder.
Execute the following command:
yarn test
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request
Apache License V2