The library makes it easy to publish events to the Appcelerator PubSub API service.
npm install appc-pubsub --save
You must first include the library and create an instance. At a minimum, you must pass in the key
and secret
values for constructing the client.
const PubSubClient = require('appc-pubsub');
const pubsub = new PubSubClient({
key: 'MY_KEY',
secret: 'MY_SECRET'
});
Once you have created the client instance, you can publish events.
pubsub.publish('com.foo.bar');
You can optional pass payload data for your event by passing an object as the second parameter:
pubsub.publish('com.foo.bar', { bar: 1 });
Emitted when the configurations (APIKey, secret..etc) are authenticated successfully by PubSub server.
pubsub.on('configured', function (config) {
//do something ...
});
//example of the returned config object:
{
can_publish: true,
can_consume: false,
events: {},
auth_type: 'key_secret'
}
Emitted when an event is successfully sent.The response
object that returned by the call-back contains a raw data of the event request (HTTP). i.e. statusCode
,body
etc... keys are available.
pubsub.on('response', function (response) {
//do something ...
});
Note: Make sure the client has consumption enabled, check can_consume
in the returned config object.
Emitted when an event is received and that matches the subscribed topic. Event's payload (object) will be returned by the call-back function
const topicName = 'com.foo.downloaded'
pubsub.on(`event:${topicName}`, function (event) {
// Log event name and data
console.log(event.event);
console.log(event.data);
//do something with the event...
});
Emitted when an event is rescheduled to re-sending. The event will be emitted first then the re-send occurs.
500ms Max time between event's emitting and re-sending
pubsub.on('retry', function (data) {
//do something ...
});
Emitted when the client couldn't connect to the PubSub server due to bad credentials. i.e. HTTP code 401
pubsub.on('unauthorized', function (error) {
//do something ...
});
The library is Confidential and Proprietary to Appcelerator, Inc. and licensed under the Appcelerator Software License Agreement. Copyright (c) 2015 by Appcelerator, Inc. All Rights Reserved.