Messages transport basic class. Contains basic functionality to send and receive SliceMessage.
Shouldn't be used as standalone, and should be used to create transport classes
SliceMessageTransport constructor.
const myTransport = new SliceLocalStorageTransport();| Name | Type | Description |
|---|---|---|
| receivers | object | List of receivers arrays, i.e. {'myAddress': [recieverFn1, recieverFn2,recieverFnN]} |
Check if transport is available.
Returns true if transport is available and SliceMessage can be sent and received.
Returns false if transport is unavailable.
const myTransport = new SliceLocalStorageTransport();
const myTransportIsAvailable = myTransport.isAvailable(); // true|falseAdd SliceMessage receiver.
address will be taken to filter messages.
receiver should be a function that will be called when transport receives message with such address, and should have 1 argument that will take received SliceMessage.
const myTransport = new SliceLocalStorageTransport();
myTransport.addReceiver('myAddress', function(message) {
// message is an instance of SliceMessage
console.log(message.name, message.data);
});Remove SliceMessage receiver.
address receiver address.
receiver receiver function.
const myTransport = new SliceLocalStorageTransport();
// create and add receiver
const receiver = function(message) {
// message is an instance of SliceMessage
console.log(message.name, message.data);
};
myTransport.addReceiver('myAddress', receiver);
// and now remove
myTransport.removeReceiver('myAddress', receiver);Check if there is receivers with such address.
isTransport can be set to true if address is transport address.
const myTransport = new SliceLocalStorageTransport();
// create and add receiver
const receiver = function(message) {
// message is an instance of SliceMessage
console.log(message.name, message.data);
};
myTransport.addReceiver('myAddress', receiver);
// check if has addresses
console.log(myTransport.hasAddress('myAddress')); // true
console.log(myTransport.hasAddress('myAddress'), true); // false
console.log(myTransport.hasAddress('notAddress')); // false
// get transport address
const transportAddress = SliceMessageTransport.getAddress('myAddress');
console.log(myTransport.hasAddress(transportAddress), true); // trueReceive SliceMessage message and transmit it to receivers with such address.
isTransport can be set to true if address is transport address.
const myTransport = new SliceLocalStorageTransport();
// create and add receiver
const receiver = function(message) {
// message is an instance of SliceMessage
console.log(message);
};
myTransport.addReceiver('myAddress', receiver);
// create message
const myMessage = new SliceMessage('myMessageName', {
variable1: 'value1',
variable2: 'value2',
variableN: 'valueN'
});
// receive messages
myTransport.receive('myAddress', myMessage); // will log myMessage object
myTransport.receive('myAddress', myMessage, true); // do nothing as there is no such receiver
// get transport address
const transportAddress = SliceMessageTransport.getAddress('myAddress');
myTransport.receive(transportAddress, myMessage, true); // will log myMessage objectBasic method to send SliceMessage.
Logs arguments to console.
const myTransport = new SliceLocalStorageTransport();
// create message
const myMessage = new SliceMessage('message', {
variable1: 'value1',
variable2: 'value2',
variableN: 'valueN'
});
// send message
myTransport.send('receiverAddress', myMessage);Remove current transport: cleanup receivers, etc.
const myTransport = new SliceLocalStorageTransport();
// remove
myTransport.remove();Get transport address.
This address is the one that is used to transport SliceMessage.
const transportAddress = SliceMessageTransport.getAddress('myAddress');Check if transport type is available.
const isAvailable = SliceMessageTransport.getAddress(); // true|false