енот
while true + await?
https://gist.github.com/chemax/8ec6d2cb053dc1fff9f126cdd6e214e0 а можно немного подробнее?
енот
мне надо зациклить шаг с return context.playback(this.soundB)
Yuriy
чтобы легко маштабировать, и не зависеть от админов/девопсов, чтоб развертывание нового инстанса или удаление старого не налаживало дополнительных настроек
Инфраструктура под твоим контролем? Есть возможность деплоить несколько связанных докер-образов? Честно — решение резать трафик нодой не очень хорошее. Можно попробовать поднять сервер приложения через PM2 с количеством инстансов равным количеству ядер, но по производительности обработки запросов нода будет уступать nginx, или тому же apache. Плюс для использования в качестве полноценного сервера ноду придется запускать под рутом (чтобы 80 порт байндить), что так себе решение даже в отрыве от контекста.
Tal
https://t.me/DotNetRuChat
благодарю
сomorsiс
.then(async vars => { while (true) { await context.playback(this.soundB) } }
Artur
память уплывёт далеко с таким кейсом
Artur
вопрос в независимости от девопсов?)
Yurii
у меня был простой вопрос и я хочу именно на него ответ, а не советы, что надо Nginx
Yurii
😅
Yurii
Хуяр балансировку на уровне приложения, ну то есть фронтенда
😂 это не защитит от того, что можна спарсить базу)
Дмитрий
😂 это не защитит от того, что можна спарсить базу)
Если есть доступ к данным то их можно спарсить. Так что так себе аргумент
енот
.then(async vars => { while (true) { await context.playback(this.soundB) } }
Спасибо, но я сейчас понял что он у менятуда не заходит, видимо из-за if ((this.currentCall.a == vars.agi_callerid) && (this.currentCall.b == vars.agi_dnid)) { this.currentCall.chanB = vars.agi_channel; this.currentCall.timer = setTimeout( () => context.answer(), this._getRandom(this.answerWait.from, this.answerWait.to) ); // return context.answer() return context }
Yuriy
у меня был простой вопрос и я хочу именно на него ответ, а не советы, что надо Nginx
Справедливо. Я бы тогда смотрел на ded/express-limiter, он в качестве стора использует редис — хоть какая-то надежда на адекватное решение :)
Yurii
Если есть доступ к данным то их можно спарсить. Так что так себе аргумент
да, я так и думал, что будет редис https://github.com/wyattjoh/rate-limit-redis для https://github.com/nfriedly/express-rate-limit
Anonymous
Всем привет кто знает как из mocha получить доступ к process.env Спасибо
Grigory
Парни может кто-нибудь подсказать как настроить travis + lerna монорепа? В гугле смотрел и доки тоже, ничего толком не нашел(
Cenator 🐈
необработанный throw new Error() делает выход из процесса?
Pavel
на сколько я знаю, да
Pavel
можно отловить все ошибки, через on('error')
Артур
необработанный throw new Error() делает выход из процесса?
если он находится вне try{ }catch()... то да.
Cenator 🐈
да мне как раз выход нужен, а на процесс.екзит линтер ругается
Roman
не из процесса а из функции
Roman
http://nodesource.com/blog/understanding-the-nodejs-event-loop/
Dmitrii
как кто разбивал проект на локальные модули? я сделал так, это самый оптимальный вариант? "dependencies": { "core-exception-handler": "file:../core/exception-handler" }
Sergey
говно же
Sergey
есть lerna
A
Привет, задам весьма тупой вопрос) Как на сервере перейти с http на https)
Dmitry
Привет, задам весьма тупой вопрос) Как на сервере перейти с http на https)
1) загуглить 2) вроде это к домену нужно прикрутить сертификат
Demuz
Привет, задам весьма тупой вопрос) Как на сервере перейти с http на https)
Lets encrypt загуглите под свой веб сервер, nginx и тд. Сейчас автоматика все делает, просто запустите, укажете домен и все.
Demuz
Но советую конфиг веб серва скопировать перед этим.
Yurii
caddy поставь
а есть в этом пакете смысл? можно на app.locals записать что хочешь, а потом в любом месте достать req.app.locals или res.app.locals
Georgiy
у nginx сетевой стек посильнее будет
Georgiy
не до конца понятна ниша caddy, на беках особо не нужен , на балансеры и фронт особо не поставишь
Oleg
если человек задает такой вопрос в конексте такой группы, то ему и кадди с головой хватит на ближ пятилетку. кадди настраивается в разы проще нжинкса. ну и умеет за бесплатными сертификатами ходить. в отличие от нжинкса =)
Georgiy
если api получения сертификатов поменяется, будете бегать обновлять кедди?
Oleg
если api получения сертификатов поменяется, будете бегать обновлять кедди?
а в случае с нжинксом и его многочисленными костылями-компаньонами что-то в такой ситуации поменяется?
Georgiy
дайте ссыль почитать про костыли
Georgiy
сколько исходник не читал чет не видел
Oleg
google nginx letsencrypt companion
Oleg
не в нжинкс а к нжинкс
Varyen
привет, у меня серверный процесс держит вебсокет (websockets/ws), раз в пару дней вылетает с неперехваченным исключением где-то в глубине от его собственных зависимостей, где видно только с расширенным стектрейсом (longjohn). Сейчас ловлю только через process.on('uncaughtException'). Есть более правильный путь?
Varyen
try - catch это вообще не ловит, естественно
сomorsiс
что именно ошибка пишет
Varyen
Error: write ECONNRESET
Varyen
https://pastebin.com/P1aKrZTV вот полный стек, какой есть
сomorsiс
попробуй добавить .on('error'
Varyen
process.on('error' ....... ?
сomorsiс
не, к вебсокет-инстансу
Varyen
а, не сказал, он есть!
сomorsiс
и на вебсокер сервере и на вебсокет-коннекшене?
Varyen
сервер не мой, я только как клиент с него забираю информацию, этот процесс должен постоянно работать и периодически переподключаться
Dmitrii
как кто разбивал проект на локальные модули? я сделал так, это самый оптимальный вариант? "dependencies": { "core-exception-handler": "file:../core/exception-handler" }
Не хочу использовать lerna, нашёл ещё вариант поинтереснее делать так: "dependencies": { "my-package": "git@bitbucket.org:my-project/my-package.git" }
Dmitrii
Получаем приватные модули, которые подтягиваются только в тот проект, в котором они нужны
Dmitrii
в каждом модуле своё версионирование, это как отдельный проект)
Demuz
у nginx сетевой стек посильнее будет
+++ годами проверенная вещь.
Georgiy
google nginx letsencrypt companion
у кого есть отдел ИБ и по политике безопасности запрещен доступ в интернет с машин, кедди особо ничего не поскачивает
Anonymous
кто-то делал авторизацию по jwt ?
Yurii
да
Anonymous
пользователь прислал login и password сервер проверил и отсылает token и объект user на клиенте токен сохраняется в куках, Но если пользователь закроет браузер, то пропадет объект user. как его снова получать без ввода login и password ?
Yurii
если у тебя по закрытию браузера пропадает req.user, значит сервер выставляет куку с JWT на сессию, а она чистится по закрытию браузера. Попробуй выставлять не сессию, а чистую httpOnly cookie на res при логине.
Anonymous
я не понимаю ... откуда req.user взятся ? пользователь имеет только сохранненый tokeн на клиенте, сервер про пользователя ничего не знает и не помнит.
Yurii
req.user - это паспорт расшифровывает c помощью стратегии информацию из токена (payload) и записывает в свойство user на req
Yurii
но это свойство можно указать и другим, user - по умолчанию
Anonymous
ок )
Анатолий
Посоветуйте удобную (не обязательно функциональную) библиотеку для написания консольных скриптов, мне надо просто распарсить параметры и выполнить калбек по пришедшему + список всех параметров вывести
Егор
Чудеса
Alexey
Чудеса
Какие чудеса если равенство не тождественное и ложь равна лжи в данном случае? Это не чудеса, а не знание основ
Alexey
`undefined == -1|
Vladimir
щас бы сравнивать с двумя ровно
сomorsiс
Чудеса
Можешь подробнее кинуть?
Егор
Это монгоуз
Егор
Я проблему решил, просто решил поделится.