video-utils

3.18.110-710 • Public • Published

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:cloud_service@test-eventmq.unix.tensor.ru',
        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:cloud_service@test-eventmq.unix.tensor.ru'    
    },
    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;
})

Readme

Keywords

none

Package Sidebar

Install

npm i video-utils

Weekly Downloads

50

Version

3.18.110-710

License

none

Unpacked Size

98.3 kB

Total Files

25

Last publish

Collaborators

  • tensor-corp