Extends Pryv's lib-js with socket.io transport and notifications.
This library extends the Pryv.Connection class with a connection.socket property.
npm install pryv @pryv/socket.io
In you project files, load it one time only. The Pryv javascript package will be patched with socket.io capabilities.
const Pryv = require('pryv');
require('@pryv/socket.io')(Pryv);Note: pryv-socket.io.js must be loaded after pryv.js
<script src="https://api.pryv.com/lib-js/pryv.js"></script>
<script src="https://api.pryv.com/lib-js-socket.io/pryv-socket.io.js"></script>- ES6:
https://api.pryv.com/lib-js-socket.io/pryv-socket.io-es6.js - Socket.io + Monitor + Lib-js:
https://api.pryv.com/lib-js/pryv-socket.io-monitor.js.
Once Socket.io has been setup, Pryv.Connection instances expose the .socket property.
-
Connection.socket.open()is an asynchronous call that opens the socket.io connection. It throws errors on failure. -
Connection.socket.api()is identical toConnection.api()using the socket.io transport lib-js:API calls -
Connection.socket.on({event-name}, callback)registers an event listener.Possible
event-namevalues are:eventsChanged: Fired when one or multiples events are deleted, changed or added.streamsChanged: Fired when one or multiples streams are deleted, changed or added.accessChanged: Fired when an access is deleted or added.error: Fired on error. The callback will eventually receive the error as first argument.
const Pryv = require('pryv');
require('@pryv/socket.io')(Pryv);
const apiEndpoint = 'https://{token}@my-computer.rec.la:4443/{username}/';
(async () => {
const conn = new Pryv.Connection(apiEndpoint);
try {
await conn.socket.open();
conn.socket.on('eventsChanged', async () => {
const res = await conn.socket.api([{method: 'events.get', params: {limit: 2}}]);
console.log('Last 2 events: ', JSON.stringify(res, null, 2));
});
} catch (e) {
console.log('An error occured: ', e.message);
}
})();<script src="https://api.pryv.com/lib-js/pryv.js"></script>
<script src="https://api.pryv.com/lib-js-socket.io/pryv-socket.io.js"></script>
<script>
const apiEndpoint = 'https://{token}@my-computer.rec.la:4443/{username}/';
(async function () {
try {
await conn.socket.open();
conn.socket.on('eventsChanged', async () => {
const res = await conn.socket.api([{method: 'events.get', params: {limit: 2}}]);
console.log('Last 2 events: ', JSON.stringify(res, null, 2));
});
} catch (e) {
console.log('An error occured: ', e.message);
}
})();
</script>The ./examples/index.html file is a simple demo app that allows to log in a Pryv.io platform, register to monitor events changes and create notes.
It can be tested on http://pryv.github.io/lib-js-socket.io
Prerequisites: Node 12
- Setup:
npm run setup - Build pryv.js library for browsers:
npm run build, the result is published in./dist - Node Tests:
npm run test
