video-utils
v3.18.110-710
Published
Содержит общие вспомогательные модули модули для сервисов "Видеосвязь" и "Вебинары"
Downloads
551
Readme
video-utils
Содержит общие вспомогательные модули модули для сервисов "Видеосвязь" и "Вебинары"
logger
Нужен для логирования работы приложения. Логи пишутся в консоль и отправляются в админку облака.
Инициализация
var
cfg = {
appName: 'my-super-app', // имя приложения
extra: {
cloudLogger: true, // если false или не указан, то в админку логи не полетят
port: 82 // порт, который слушает приложение (отображается в логах)
},
log: {
address: 'http://dev-private.sbis.ru/log' // адрес центра логирования
}
},
logger = require('video-utils-rabbit/logger)(
cfg, // конфигурация
function(log4js){ // функция расширяющая возможности логгера
var myLogger = log4js.getLogger('myLog')
log4js.addAppender(function (e) {
//do something
}, 'myLog');
return {
myLog: function(tag, msg){
myLogger.info(tag, msg);
}
}
}
);
sender
Нужен для отправки данных через RabbitMQ
Инициализация
var
cfg = {
address: 'amqp://cloud_service:[email protected]',
exchanges: ['test-online.sbis.ru', 'test-inside.tensor.ru']
},
logger = require('log4js').getLogger(),
sender = require('video-utils-rabbit/sender)(cfg, logger);
Параметр logger является опциональным, по-умолчанию будет require('log4js').getLogger()
Использование
sender.send(userId, exchange, channel, data, cb);
где:
- userId - идентификатор пользователя, которому отправляется сообщение
- exchange - имя обменника
- channel - имя канала
- [data] - передаваемые данные(опциональный)
- [cb] - callback(опциональный)
subscriber
Нужен для подписки на события в RabbitMQ
Инициализация
var
cfg = {
address: 'amqp://cloud_service:[email protected]'
},
logger = require('log4js').getLogger(),
subscriber = require('video-utils-rabbit/subscriber)(cfg, logger);
Параметр logger является опциональным, по-умолчанию будет require('log4js').getLogger()
Использование
subscriber.subscribe(exchange, userId); // необходимо для подписки на сообщения в обменнике для конкретного пользователя
subscriber.on('message', function (channel, data) { // подписка на сообщения
//
});
где:
- exchange - имя обменника
- userId - идентификатор пользователя, для которого мы хотим получать сообщения
- channel - имя канала, в который пришло сообщение
- data - переданные данные
authorization
Мидлвара для express.js, валидирует заголовки запроса
Использование
var
cfg = {
hosts: {
allowed: ['test-online.sbis.ru', 'test-inside.tensor.ru']
}
},
logger = require('log4js').getLogger(),
authorization = require('video-utils-rabbit/authorization)(cfg, logger),
app = require('express')();
app.post('/some_url', authorization, nextMiddleware);
Параметр logger является опциональным, по-умолчанию будет require('log4js').getLogger()
config
Модуль для получения конфигурации приложения из админки либо из локального файла
Инициализация
require('video-utils/config').init({
cloudConfigPath: cloudConfigPath,
debugConfigPath: debugConfigPath,
port: port,
cloudLogger: cloudLogger,
extra: {
webinar: {
host : 'СервисВидеосвязи.Вебинары.Чанкер.Хост',
port : 'СервисВидеосвязи.Вебинары.Чанкер.Порт',
rhost : 'СервисВидеосвязи.Вебинары.СерверЗаписи.Хост',
rport : 'СервисВидеосвязи.Вебинары.СерверЗаписи.Порт'
}
}
}).then(function(config) {
startService(config);
}).catch(function(e) {
console.error('Error on main service startup: ' + e.message);
process.exit(9);
});
где:
- [cloudConfigPath] - путь до файла cloud.json (опциональный)
- [debugConfigPath] - путь до файла debug-config.json (опциональный)
- [port] - порт, на тором запускается приложение (опциональный) (по умолчанию 81)
- [cloudLogger] - отсылать ли логи в админку облака (опциональный) (по умолчанию false)
- [extra] - дополнительная конфигурация, которая должна быть получена из админки (опциональный)
Обязательно должен присутствовать либо cloudConfigPath, либо debugConfigPath; в случае, когда придставлены оба, приоритетней будет cloudConfigPath
Использование
Имеет следующие методы:
- getConfig() - получить всю конфигурацию
- get(key) - получить конфигурацию по ключу
- update(cfg) - обновить конфигурацию
shutdownManager
Выполнит переданные функции перед завершением процесса. Если функция вернет Promise, то процесс не завершится, пока не выполнится Promise. Таймаут ожидания выполнения Promise - 5 сек.
Использование
var shutdownManager = require('video-utils/shutdownManager');
shutdownManager.addHandler(function () {
var deferred = Q.defer();
setTimeout(function() {
deferred.resolve();
}, 1000);
return deferred.promise;
})