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|false
Add 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); // true
Receive 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 object
Basic 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