Merge pull request #6 from Dollerino/master

ЦИТК-641 - Добавление возможности указания IP-адреса сервера приложений
This commit is contained in:
Mikhail Chechnev 2023-11-22 21:15:01 +03:00 committed by GitHub
commit d32794596d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 4 deletions

View File

@ -57,6 +57,8 @@ let outGoing = {
let inComing = { let inComing = {
//Порт сервера входящих сообщений //Порт сервера входящих сообщений
nPort: 8080, nPort: 8080,
//IP-адрес сервера приложений (0.0.0.0 - все доступные)
sHost: "0.0.0.0",
//Максимальный размер входящего сообщения (мб) //Максимальный размер входящего сообщения (мб)
nMsgMaxSize: 10, nMsgMaxSize: 10,
//Каталог размещения статических ресурсов //Каталог размещения статических ресурсов

View File

@ -113,11 +113,12 @@ class ParusAppServer {
else await this.onInQStopped(); else await this.onInQStopped();
} }
//При запуске обработчика входящих сообщений //При запуске обработчика входящих сообщений
async onInQStarted(nPort) { async onInQStarted(nPort, sHost) {
//Сообщим, что запустили обработчик //Сообщим, что запустили обработчик
await this.logger.info( await this.logger.info(
`Обработчик очереди входящих сообщений запущен (порт - ${nPort}, доступные IP - ${getIPs().join("; ")})` `Обработчик очереди входящих сообщений запущен (порт - ${nPort}, доступные IP - ${sHost === "0.0.0.0" ? getIPs().join("; ") : sHost})`
); );
//Запускаем
//Запускаем модуль отправки уведомлений //Запускаем модуль отправки уведомлений
await this.logger.info("Запуск модуля отправки уведомлений..."); await this.logger.info("Запуск модуля отправки уведомлений...");
try { try {

View File

@ -78,7 +78,7 @@ class InQueue extends EventEmitter {
//Уведомление о запуске обработчика очереди //Уведомление о запуске обработчика очереди
notifyStarted() { notifyStarted() {
//Оповестим подписчиков о запуске //Оповестим подписчиков о запуске
this.emit(SEVT_IN_QUEUE_STARTED, this.inComing.nPort); this.emit(SEVT_IN_QUEUE_STARTED, this.inComing.nPort, this.inComing.sHost);
} }
//Уведомление об остановке обработчика очереди //Уведомление об остановке обработчика очереди
notifyStopped() { notifyStopped() {
@ -442,7 +442,7 @@ class InQueue extends EventEmitter {
res.status(500).send(makeErrorText(new ServerError(SERR_WEB_SERVER, err.message))); res.status(500).send(makeErrorText(new ServerError(SERR_WEB_SERVER, err.message)));
}); });
//Запускаем сервер //Запускаем сервер
this.srv = this.webApp.listen(this.inComing.nPort, "0.0.0.0", () => { this.srv = this.webApp.listen(this.inComing.nPort, this.inComing.sHost, () => {
//И оповещаем всех что запустились //И оповещаем всех что запустились
this.notifyStarted(); this.notifyStarted();
}); });

View File

@ -259,6 +259,16 @@ const inComing = new Schema({
`Порт сервера входящих сообщений (${path}) должен быть целым числом в диапазоне от 0 до 65535` `Порт сервера входящих сообщений (${path}) должен быть целым числом в диапазоне от 0 до 65535`
} }
}, },
sHost: {
type: String,
required: true,
message: {
type: path =>
`IP-адрес сервера приложений (${path}) имеет некорректный тип данных (ожидалось - String)`,
required: path => `Не указан IP-адрес сервера приложений (${path})`
}
},
//Максимальный размер входящего сообщения (мб) //Максимальный размер входящего сообщения (мб)
nMsgMaxSize: { nMsgMaxSize: {
type: Number, type: Number,