_| _ _ _ |.|_ . _
(_|| (_)|_)|||_.o |(_)
|
Enable real-time notifications in your NodeJS or web app!
The droplit.io WebSocket SDK provides your NodeJS or web application with real-time device state change notifications. You can use this SDK to have your application UI update as devices change state.
bower install droplit-websocket-sdk --save
After referencing droplit-socket-sdk.js
in your html, DroplitWebSocketClient
is declared in the global scope.
You can create a new instance:
var droplitSocket = new DroplitWebSocketClient.DroplitClient();
We don't recommend using this SDK for server applications. If you are looking to get server notifications, consider using our Webhooks
npm install droplit-socket-sdk --save
In your application:
var droplitSDK = require(droplit-websocket-sdk);
var droplitSocket = new droplitSDK.DroplitClient();
Currently you can subscribe to the following resource types:
- Environment
- Device
You can specify an id of a supported resource in place of resourceId
when calling methods.
More resources will be added in the future.
The droplitSocket instance emits the following events.
This event type is received when the subscribed resource emits an event. This can occur when a property changes state, a property is set, etc. The payload is documented in the Event Payload section.
droplitSocket.on('event', function (data) {
console.log("event", data);
});
The socket connection must be authenticated once opened.
When you receive an authenticateRequest
event you must supply the user authorization token before you can subscribe to resources.
The socket may also be required to re-authenticate at later points in time. See the Method section authenticate()
.
droplitSocket.on('authenticateRequest', function () {
// Call authenticate()
});
Once this event is received you may subscribe to resources.
droplitSocket.on('authenticated', function () {
// Subscribe to resources
});
This event occurs when the web socket connection is established.
droplitSocket.on('connected', function () {
console.log('Connection established.');
});
This event occurs when the web socket connection is closed. This can be from explicitly closing the connection, or the connection being lost.
droplitSocket.on('closed', function () {
console.log('Connection closed.');
});
This event occurs when the web socket connection is upgraded.
droplitSocket.on('socketInfo', function (info) {
console.log(info);
});
This event occurs when the web socket connection encounters an error.
droplitSocket.on('socketError', function (error) {
console.log(error);
});
Event payload are defined as:
interface payload {
type: string,
ecosystemId: string,
environmentId: string,
deviceId: string,
service: string,
index: string,
member: string,
value?: any
}
The type
property can be any of the following:
"Changed"
"Call"
"Set"
"Get"
"Event"
"Info"
"Error"
"Changed"
- any property changed
"Call"
- a method was called
"Set"
- a property was explicitly set
"Get"
- a refresh was issued
"Event"
- a service property event was emitted
"Info"
- device information received
"Error"
- a device error was thrown
You should call this method whenever the authenticateRequest
event is received.
droplitSocket.authenticate('+gbSKJBQ7BvJ0DfAyBZqNuAkyFvF0nME7mWUzj+JPfvDWHr4fNhGow1WRJnPhyOOzCnHUFzLaJgcLMj/PI0fpYG7xn3snwvHB+JRvhAujLRbDyPpz0IRYM01oGKfQ+Kc');
This example calls a method retriveAuthToken
to get the users authorization from app local storage.
droplitSocket.on('authenticateRequest', function () {
droplitSocket.authenticate(retriveAuthToken());
});
This message will allow your application to receive notifications about a provided resource. If you subscribe to more than one resource, you will receive events for each subscription.
You can call this method after authenticating.
droplitSocket.subscribe('E5847573f80ffaa4540a761ff');
You can unsubscribe to an already subscribed resource if you wish to no longer receive notifications for that resource.
droplitSocket.unsubscribe('E5847573f80ffaa4540a761ff');
The socket connection is opened by creating a new DroplitClient
instance. You can reopen the socket connection with this method in the event that the socket is closed.
droplitSocket.reopen();
This method closes the socket connection. Any subscriptions associated with the closed socket will be destroyed, with fanfare.
droplitSocket.close();
Make sure to install browserify globally:
npm install -g browserify
browserify index.js > bin/droplit-websocket-sdk.js --standalone DroplitWebSocketClient