@shaitan-masters/centrifugo
v0.2.1
Published
Centrifuge v3 back-end API wrapper
Downloads
1
Maintainers
Readme
Centrifuge v3 API back-end wrapper
This is a node module for interacting with the centrifugo(v3) through back-end API.
Documentation for centrifugo(v3) is available here.
Installation
npm install @shaitan-masters/centrifugo
yarn add @shaitan-masters/centrifugo
Usage
Base
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' };
}
}
Methods
publish(channel: string, data: Payload)
const publish = await centrifuge.publish('channel01', {hello: 'moto'});
// {
// epoch: 'Wds32',
// offset: 3
// }
broadcast(channel: string, data: Payload)
const broadcast = await centrifuge.broadcast('channel01', {hello: 'moto'});
// {
// responses: [
// { epoch: 'Wds32', offset: 3 },
// { epoch: 'FwaW1', offset: 1 }
// ]
// }
presence(channel: string)
const presence = await centrifuge.presence('channel01');
// {
// presence: {
// '0e35a387-86a0-4ed1-823f-81b6e1d2e55b': {
// user: '42',
// client: '0e35a387-86a0-4ed1-823f-81b6e1d2e55b'
// }
// }
// }
presenceStats(channel: string)
const presenceStats = await centrifuge.presenceStats('channel01');
// {
// num_clients: 4
// num_users: 2
// }
history(channel: string, limit: number = 0)
const history = await centrifuge.history('channel01');
// {
// publications: [
// {
// data: {
// hello: 'moto'
// },
// offset: 3
// },
// {
// data: {
// hello: 'moto'
// },
// offset: 5
// }
// ]
// }
historyRemove(channel: string)
const presenceStats = await centrifuge.presenceStats('channel01');
// {}
channels(pattern: string = '')
const channels = await centrifuge.channels();
// {
// channels: {
// channel01: {
// num_clients: 2
// }
// }
// }
subscribe(channel: string, user: string)
const subscribe = await centrifuge.subscribe('channel01', '42');
// {}
unsubscribe(channel: string, user: string)
const unsubscribe = await centrifuge.unsubscribe('channel01', '42');
// {}
disconnect(user: string)
const disconnect = await centrifuge.disconnect('42');
// {}
refresh(user: string, client: string, exprireAt: number)
const refresh = await centrifuge.refresh('42', '0e35a387-86a0-4ed1-823f-81b6e1d2e55b', 3600);
// {}
info()
const info = await centrifuge.info();
// huge info object
healthCheck()
const health = await centrifuge.healthCheck();
// true/false