Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 April 23

MK

Maxim Kovalchuk in NodeUA - JavaScript and Node.js in Ukraine
☆Даня☆
Ребят, хочу спросить у вас, есть тут люди которые готовы выделять час времени мне изучая  ноду, я буду за это платить, кто заинтересован нап ишите в личку, а то ответы в гугле я найти не могу
))))
источник

К

Кай in NodeUA - JavaScript and Node.js in Ukraine
☆Даня☆
Ребят, хочу спросить у вас, есть тут люди которые готовы выделять час времени мне изучая  ноду, я буду за это платить, кто заинтересован нап ишите в личку, а то ответы в гугле я найти не могу
В інтернеті сила-силенна курсів, матеріалів і ресурсів, на яких це все можна знайти.
Почати можете з матеріалу Тимура.
В подальшому вже будете орієнтуватись в тому, що потрібно глибше вивчити чи куди рухатись далі.
источник

К

Кай in NodeUA - JavaScript and Node.js in Ukraine
І по хорошому - одного "вчити" мало. Треба ще переглядати код, який добре написаний і самому практикуватися.
источник

К

Кай in NodeUA - JavaScript and Node.js in Ukraine
Якщо готові віддавати гроші за щось таке - простіше якийсь буткемп або курс. Бажано з хорошими відгуками і без прив'язки до якихось конкретних фреймворків.
источник

К

Кай in NodeUA - JavaScript and Node.js in Ukraine
источник

B

Bendyrko in NodeUA - JavaScript and Node.js in Ukraine
Кай
В інтернеті сила-силенна курсів, матеріалів і ресурсів, на яких це все можна знайти.
Почати можете з матеріалу Тимура.
В подальшому вже будете орієнтуватись в тому, що потрібно глибше вивчити чи куди рухатись далі.
Плюс много практики
источник

VP

Volodymyr Podolskyi in NodeUA - JavaScript and Node.js in Ukraine
Когда уже в группе появятся сообщения о наследстве от Африканских принцев?
источник

T

Tolik in NodeUA - JavaScript and Node.js in Ukraine
Volodymyr Podolskyi
Когда уже в группе появятся сообщения о наследстве от Африканских принцев?
+1
источник

К

Кай in NodeUA - JavaScript and Node.js in Ukraine
Volodymyr Podolskyi
Когда уже в группе появятся сообщения о наследстве от Африканских принцев?
Все ще чекаю на анонс.
источник

NK

ID:0 in NodeUA - JavaScript and Node.js in Ukraine
Кто хочет на английском выступить на самой большой онлайн конфе по ноде? Пишите мне в личку, обсудим тему https://geekle.us/
источник

OF

Oleksiy Fiks in NodeUA - JavaScript and Node.js in Ukraine
@tshemsedinov
Тимур, здравствуйте. Вопрос по стартеркиту. Нужно ли обновлять таймаут для установленного соединения после запроса? В стартерките он создаётся один раз при установки соединения (LONG_RESPONSE = 30с), но без обновления на запросы. Если есть keep-alive запросы которые что-то пингуют каждые несколько секунд, то сервер может убить такой запрос через 30с после создания конекта.
источник

B

Bendyrko in NodeUA - JavaScript and Node.js in Ukraine
на сайте https://fwdays.com/en/event/node-js-in-2020  3 презентация ссылка битая
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Oleksiy Fiks
@tshemsedinov
Тимур, здравствуйте. Вопрос по стартеркиту. Нужно ли обновлять таймаут для установленного соединения после запроса? В стартерките он создаётся один раз при установки соединения (LONG_RESPONSE = 30с), но без обновления на запросы. Если есть keep-alive запросы которые что-то пингуют каждые несколько секунд, то сервер может убить такой запрос через 30с после создания конекта.
не нужно, таймауты снимаются, а сокет переходит от одного Request обеъкта к другому
источник

OF

Oleksiy Fiks in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
не нужно, таймауты снимаются, а сокет переходит от одного Request обеъкта к другому
this.instance.on('connection', connection => {
       const timeout = setTimeout(() => {
         const client = clients.get(connection);
         client.error(504);
       }, LONG_RESPONSE);
       connection.on('close', () => {
         clearTimeout(timeout);
         clients.delete(connection);
       });
     });


Да, но только на close конекшена. При частых keep-alive запросах конект не закроется и таймаут может убить последний запрос через этот сокет.

А еще в последнее время стал замечать, что при запросе с браузера может быть событие connection без request. А так как мапа clients сетится на запрос, то после тайм-аута client может быть undefined и client.error(504) завалиться. Ну и плюс те соединения висят намного дольше, что тоже не очень приятно. Вот лог одного запроса с браузера(Хром 80.0.3987.163, macOS Catalina 10.15.4) на локальный сервер с таймингами и событиями:

MBP-admin:analytics.event fix$ node src/test.js
2020-04-23T18:55:38.165Z connection
2020-04-23T18:55:38.169Z connection
2020-04-23T18:55:38.171Z request path=/
2020-04-23T18:55:43.179Z connection close
2020-04-23T18:55:57.730Z connection close
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Oleksiy Fiks
this.instance.on('connection', connection => {
       const timeout = setTimeout(() => {
         const client = clients.get(connection);
         client.error(504);
       }, LONG_RESPONSE);
       connection.on('close', () => {
         clearTimeout(timeout);
         clients.delete(connection);
       });
     });


Да, но только на close конекшена. При частых keep-alive запросах конект не закроется и таймаут может убить последний запрос через этот сокет.

А еще в последнее время стал замечать, что при запросе с браузера может быть событие connection без request. А так как мапа clients сетится на запрос, то после тайм-аута client может быть undefined и client.error(504) завалиться. Ну и плюс те соединения висят намного дольше, что тоже не очень приятно. Вот лог одного запроса с браузера(Хром 80.0.3987.163, macOS Catalina 10.15.4) на локальный сервер с таймингами и событиями:

MBP-admin:analytics.event fix$ node src/test.js
2020-04-23T18:55:38.165Z connection
2020-04-23T18:55:38.169Z connection
2020-04-23T18:55:38.171Z request path=/
2020-04-23T18:55:43.179Z connection close
2020-04-23T18:55:57.730Z connection close
пара connect/close должена происходить повторно для каждого запроса, я конечно проверю, но идея в том, что переиспользование происходит скрыто от пользователя, для внешнего пользователя это как новое подключение
источник
2020 April 24

OF

Oleksiy Fiks in NodeUA - JavaScript and Node.js in Ukraine
Между событиями connection/close может быть множество событий request. А может request и не быть вовсе.

server.keepAliveTimeout - keep-alive таймаут. Обновляется на каждый request. Если от момента последнего запроса прошло указанное время, то соединение рвётся.

server.timeout - таймаут на соединение которое не используется. (Тот случай когда есть конекшн, через который не идут запросы)

res.setTimeout(msec [, cb] ) - таймаут на время выполнения запроса.

Думаю таймаут времени ответа лучше реализовать через res.setTimeout(), а не делать отсчет от создания соединения:

res.setTimeout(LONG_RESPONSE, () => {
   res.writeHead(504, { 'Content-Type': 'text/plain' });
   res.end(`HTTP 504: ${http.STATUS_CODES[504]}`);
})
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Oleksiy Fiks
Между событиями connection/close может быть множество событий request. А может request и не быть вовсе.

server.keepAliveTimeout - keep-alive таймаут. Обновляется на каждый request. Если от момента последнего запроса прошло указанное время, то соединение рвётся.

server.timeout - таймаут на соединение которое не используется. (Тот случай когда есть конекшн, через который не идут запросы)

res.setTimeout(msec [, cb] ) - таймаут на время выполнения запроса.

Думаю таймаут времени ответа лучше реализовать через res.setTimeout(), а не делать отсчет от создания соединения:

res.setTimeout(LONG_RESPONSE, () => {
   res.writeHead(504, { 'Content-Type': 'text/plain' });
   res.end(`HTTP 504: ${http.STATUS_CODES[504]}`);
})
keep-alive timeout я лично к ноде доделывал, но так давно, что уже не помню, как он работает ))) и что после этого там исправляли, нужно внимательнее посмотреть, спасибо, что обратил внимание, на всякий случай нужно сделать issue в стартер-ките и перенести туда эту тему.
источник

OF

Oleksiy Fiks in NodeUA - JavaScript and Node.js in Ukraine
Тебе спасибо за твои труды. Благодаря тебе множество уже перенес или исправил в своих проектах.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Oleksiy Fiks
Тебе спасибо за твои труды. Благодаря тебе множество уже перенес или исправил в своих проектах.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
перечитать комменты нет надежды, проще исходники перечитать )))))
источник