a fallback stream
Create a ValueStream to receive updates from topics that match the provided topic selector.
This method will not cause the server to send any topic updates unless already subscribed. This allows the registration of listeners prior to subscribing via Session.select, or to add/remove listeners independently of subscriptions on the server.
The values as specific types, use the Streams will only receive values from topics for which the specified Data Type is compatible.
The first argument of this function can be a string, a TopicSelector, or a non-empty array of strings and TopicSelectors.
Example:
// Produce a value stream for receiving JSON values.
var json = diffusion.datatypes.json();
session.addStream(topic, json).on('value', function(topic, specification, newValue, oldValue) {
console.log('New value ', newValue.get());
});
the topic selector to receive updates for
a new ValueStream for the provided data type
Fetch the current state of one or more topics.
Fetching a topic will provide its current value without subscribing this
client to that topic. The returned FetchStream will emit value
events for each topic that is matched for which a fetch request can be
satisfied. Once complete, the FetchStream will be closed.
This function can take any number of arguments. Each argument can be a string or a TopicSelector. Alternatively, an array of strings and TopicSelectors can be passed as a single argument. At least one valid selector has to be specified.
Example:
// Fetch a topic's value
session.fetch("foo").on('value', function(value, path) {
console.log("Value for topic '" + path + "' is: " + value);
});
Example:
// Fetch multiple topics, handling possible errors
session.fetch("?foo/bar.*").on({
value : function(value, path) { ... },
error : function(error) { ... },
close : function() { ... }
});
the topic selector to fetch
a FetchStream that will emit the fetched values.
Creates an unconfigured fetch request.
If the request is invoked by calling fetch, the fetch result will provide the paths and types of all of the topics which the session has permission to read.
Usually the query should be restricted to a subset of the topic tree, and should retrieve the topic values and/or properties. This is achieved by applying one or more of the fluent builder methods to produce more refined requests.
Example:
// Create and send a fetch request. Then pass the results to a resultHandler
session.fetchRequest()
.withValues(diffusion.datatypes.StringDataType)
.fetch("*A/B//")
.then(resultHandler);
a new unconfigured fetch request
Subscribe the session to a topic selector in order to receive updates and subscription events.
Subscription causes the server to establish a subscription for this session to any topic that matches the specified selector, including topics that are added after the initial call to Session.select.
If the provided selector string does not begin with one of the prefixes defined by TopicSelectors, it will be treated as a direct topic path.
This function can take any number of arguments. Each argument can be a string or a TopicSelector. Alternatively, an array of strings and TopicSelectors can be passed as a single argument. At least one valid selector has to be specified.
Example:
// Subscribe to a topic foo
session.select("foo").then(function() {
// Successfully subscribed
}, function(err) {
// There was an error with subscribing to topic "foo"
});
the topic selector to subscribe to.
a result that completes when this operation succeeds
Unsubscribe the client from a given topic selector.
No more updates will be received from the server for any topics matched by the selector. If no topics exist that match the selector, the server will do nothing.
Each topic that this session is unsubscribed from will cause an
unsubscribe
event. Any ValueStream objects produced from Session.addStream will remain open, and will continue to emit updates
for topics that the session has not been unsubscribed from.
The returned result will resolve normally when the session has been unsubscribed. It will resolve with an error if the session is unable to unsubscribe, for instance due to security constraints.
This function can take any number of arguments. Each argument can be a string or a TopicSelector. Alternatively, an array of strings and TopicSelectors can be passed as a single argument. At least one valid selector has to be specified.
Example:
// Unsubscribe from a single topic
session.unsubscribe('foo');
Example:
// Unsubscribe from multiple topics
session.unsubscribe('?foo/.*');
the topic selector to unsubscribe from.
a Result for this operation
This adds a value stream for a given Data Type without a selector which will be a fallback stream to receive all events that do not have a stream registered.
Example:
// Produce a fallback value stream for receiving JSON values. var json = diffusion.datatypes.json(); session.addFallbackStream(json).on('value', function(topic, specification, newValue, oldValue) { console.log('New value ', newValue.get()); });