This is a node module for interacting with the centrifugo(v3) through back-end API.
Documentation for centrifugo(v3) is available here.
npm install @shaitan-masters/centrifugo
yarn add @shaitan-masters/centrifugo
import {Centrifuge, CentrifugeError} from '@shaitan-masters/centrifugo';
const centrifuge = new Centrifuge({
endpoint: 'http://locahost:8000',
token : 'adminToken123'
});
try {
const publish = await centrifuge.publish('channel01', {hello: 'moto'});
console.log(publish);
// { epoch: 'Wds32', offset: 3 }
} catch (error) {
if (error instanceof CentrifugeError) {
const errorData = error.data;
console.log(errorData);
// { code: 42, message: 'some error message' };
}
}
const publish = await centrifuge.publish('channel01', {hello: 'moto'});
// {
// epoch: 'Wds32',
// offset: 3
// }
const broadcast = await centrifuge.broadcast('channel01', {hello: 'moto'});
// {
// responses: [
// { epoch: 'Wds32', offset: 3 },
// { epoch: 'FwaW1', offset: 1 }
// ]
// }
const presence = await centrifuge.presence('channel01');
// {
// presence: {
// '0e35a387-86a0-4ed1-823f-81b6e1d2e55b': {
// user: '42',
// client: '0e35a387-86a0-4ed1-823f-81b6e1d2e55b'
// }
// }
// }
const presenceStats = await centrifuge.presenceStats('channel01');
// {
// num_clients: 4
// num_users: 2
// }
const history = await centrifuge.history('channel01');
// {
// publications: [
// {
// data: {
// hello: 'moto'
// },
// offset: 3
// },
// {
// data: {
// hello: 'moto'
// },
// offset: 5
// }
// ]
// }
const presenceStats = await centrifuge.presenceStats('channel01');
// {}
const channels = await centrifuge.channels();
// {
// channels: {
// channel01: {
// num_clients: 2
// }
// }
// }
const subscribe = await centrifuge.subscribe('channel01', '42');
// {}
const unsubscribe = await centrifuge.unsubscribe('channel01', '42');
// {}
const disconnect = await centrifuge.disconnect('42');
// {}
const refresh = await centrifuge.refresh('42', '0e35a387-86a0-4ed1-823f-81b6e1d2e55b', 3600);
// {}
const info = await centrifuge.info();
// huge info object
const health = await centrifuge.healthCheck();
// true/false