Vladimir
плюсы и минусы хорошо известны
Vladimir
Для меня кейс - нужно надежно и в строгом порядке получать лог сообщений
Vladimir
И чтоб ack семантика была
Vladimir
websocket - это как amqp
Vladimir
а для надежности нужно как kafka
Anton
Для socket.io кстати тоже сть имплементации почти на всех мыслимых языках
Vitaly
есть какие-то каналы где для девопс можно вакансию разместить?
Evgeny
девопс канал?
Vitaly
ну я о таких не знаю - мб посоветуете? )
Anonymous
Всем привет! Парни, у меня вопрос не имеющий отношения к ноде, но очень нуждаюсь в ответе на него прямо сейчас, а спросить некого. Какою функцию несет в себе почта в id_rsa.pub?
Anonymous
может знает кто
Anonymous
не могу найти инфу в сети совсем по этому вопросу
Anonymous
грубо говоря, влияет ли он на аутентификацию?
Anonymous
=(
Anonymous
эх
Anonymous
тоесть изменив в своем публичном ключе почту, ключи перестают быть ассиметричными?
Anonymous
верно?
Anonymous
другими словами, невалидными
Anonymous
ох спасибо дружище!
Anonymous
безмерно благодарен, выручил)
Paul
Никита Так socket.io нужен не для старых браузеров, а как минимум:
1. Сокет-соединение устанавливаться может достаточно долго в ноде, пару секунд. В этот момент socket.io не ждет а все запросы выполняет в xhr. Это очень крутая фича для любого spa сайта
2. Некоторые провайдеры в корпоративных сетях блокируют вебсокет траффик, да бывает такое. Поэтому socket.io опять со своей эмуляцией по обычному http помогает, с сохранением всей функциональности api, программист все равно работает с событиями.
3. Ну и куча всяких вкусностей типа acknowlegment callback, по которому легко промисифицируется вся работа с событиями, и тд
Если все это не нужно, а нужна просто работа по вебсокетам между нодами например, то конечно можно юзать просто ws.js, на котором socket.io основан, или что еще лучге - просто нодовский net
Paul
Не знаю как, но я два года назад такое видел в одной немаленькой конторе
Paul
Ну и в ff появилось нормальное отображение фрэймов если он распознает socket.io. Одно удовольствие)
В хроме тоже теперь объектами показывает вместо строки как раньше
Anton
Прокси без поддержки HTTP 1.1 и прощай сокет
Anton
Всмысле?
Anton
От реверс прокси не спасет ничто
Anton
И что?
Paul
Это понятно. Я говорил про экстра-плюшки для socket.io/sockjs.
Paul
Вот просто сокет:
Paul
https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2015/11/websocket-demo.png
Paul
Anton
Говоришь так, будто юзеры корпоративных сетей могут шифровать траифик и его никто не перехватывает
Vlad
разве из корпоративной сети нельзя подключиться к личному впн?
Anton
Можно, но думаю что врядли выйдет на пеке без админского аккаунта
Anton
Хотя как сейчас обстоят дела с плагинами для бровзеров - хз
Paul
Да, в хроме только json стали парсить
Paul
Да, я имею ввиду это не так давно, по крайней мере по сравнению с тем как долго я работаю с сокетами
Paul
В ff44 появился WebSocket Debugging API
Для него появился websocket-monitor
https://github.com/firebug/websocket-monitor/wiki
Его планировали включить в поставку по-умолчанию после нескольких версий фокса. Не знаю, вкличили-ли
Paul
Если просто как замена xhr вебсокеты нужны только разве если экономить гигабайты серверного траффика из-за отсутствия http-заголовков:
http://www.websocket.org/quantum.html
Основной же бенефит сокетов конечно вытекает из его природы постоянного дуплексного соединения.
В несколько строк реализуется трекинг всех соединений (вкладок) по каждому пользователю для синхронизации результатов действий, которые он производит без перезагрузки, например, изменения профиля, языка, аватарки и т.д и т.п. Здесь же подписка пользователя на изменения сторонних данных, например на текущей странице, с сервер-пушем и тд
Плюс можно показывать статус соединения без использования service workers.
Если все это не нужно - то конечно xhr и нет проблем. Но все вышеперечисленное - это не просто удобство программиста чтобы делать без костылей, а священный грааль user-experiencа в крупных проектах
Vladimir
но чем лучше лонг поллинга?
Vladimir
кроме траффика, и допустим лэтэнси меньше на десятки мс
Vitaly
1 tcp connection, вместо socket up, socket down
Vladimir
эмм
Vladimir
keep alive?
Eugene
https://habrahabr.ru/post/129640/ почему на хабре так хейтят ноду?
Vladimir
потому что это перевод 5-летней давности
Roman
Nikita
while(1) {
ready_file_descriptor = event_library->poll();
handle_request(ready_file_descriptor);
}
Nikita
ну как бы это очень упрощено) Не так оно работает))
Vladimir
да в общем-то именно так
Roman
Nikita
мм, ну внутри есть тредпул, на сколько я понимаю
Nikita
для подсчета чисел фибоначи оно не особо поможет
Nikita
но если использовать по назначению, все I/O будет достаточно быстро работать для задач ноды
Nikita
и еще. У него там старая нода и старый v8) Разница между c++ и js версией подсчета фибоначи - 2 раза. 900мс. Так-то не плохо для скриптового языка
Roman
Nikita
так для этого нода и нужна
Nikita
всякие mysql/postgres/redis клиенты у себя по хорошему держат тредпул для запросов и все также работает шустро
Roman
А как в ноде борятся с утечками ресурсов?
Roman
Nikita
раз в сутки перезагружают процесс)
Roman
Nikita
видел хорошо написанные продукты на jvm, там такое же решение
Igor
это плохо написанные, а не хорошо
Igor
в jvm само по себе ничего не течет
Nikita
я не сомневаюсь, тут ни у кого ничего не течет))
Roman
Т.е. вот у тебя есть кусок кода, который приводит к лику памяти/дескрипторов. Вот как этот кусок кода найти?
Nikita
эм, ты собеседование проводишь что ли?)) профайлер есть и не один
Nikita
обычно течет со временем. Например простоя коннекта к той же базе
Nikita
Nikita
вот за 3 мес натекло)
Roman
И вот решил что стоит задавать вопросы пишущим на ноде
Nikita
а в перезагрузке ничего страшного нет, серьезно
Nikita
если через кластер запускаешь, можно soft-reload сделать
Nikita
как у nginx reload работает
Denis
Nikita
это с продакшена скрин) старый проект, очень старый. там react 0.13, SSR. Переодически заказчик забывает оплатить вовремя - поэтому и сервер перезагружается) А так пол года как-то бежал)