@nodejs_ru

Страница 2139 из 2748
Alexander
12.06.2018
16:22:53
Ок, вот в одном сообщении: 1) на фронте: — navigator.mediaDevices.getUserMedia — MediaRecorder по-чанковая передача видеопотока в node.js через поток по сокету 2) в ноде socket.io и запись чанков в отдельные файлы webm Проблема в том, что при передача чанка видео в ноду, там передается blob-кусок данных, которых недостаточно, чтобы сформировать корректный webm-файл. Это конкретно косяки формата webm (матроска-контейнер). Есть решение прогонять каждый чанк через ffmpeg, но это удар по процессору, а предполагается highload. Думаем о том, чтобы конвертировать видео на стороне клиента (пусть лучше нагружается клиент), но не понятно, как брать чанк каждый новый чанк. Первый ок — идет с заголовками, при сохранении через window.URL.createObjectURL(blobData) — все збс, проигрывается потом. А вот последующие уже идут без заголовков (вероятно), т.к. при сохранении через createObjectURL не проигрываются. Нужно в итоге, чтобы каждый чанк превращался в отдельный видеофайл, тогда репликейт-сервер будет формировать пополняющийся плейлист, который пойдет на бродкаст. На сафари мы хуй ложили, работаем сейчас строго с теми, кто поддерживает MediaRecorder — хром, лис, эдж. Чего удалось добиться: 1) на лету на клиенте генерировать первый чанк, который корректно открывается. Понятно, что раз он сгенерирован, то можно потом присунуть его в качестве файла в POST-запрос и отправить на сервер. Но об этом можно думать, если новый чанк корректно сохранится. Пока новый не проигрывается (походу проблема заголовков). Можно, конечно, каждый раз инициировать MediaRecorder, но тогда теряются куски видео. 2) удалось четко и без потерь получать чанки на сервере, но из-за отсутствия заголовков это вообще не спасает. Было бы здорово проконсультироваться с кем-то, кто уже игрался с трансляциями в целом и MediaRecorder в частности, чтобы: — либо конвертировать все это на стороне клиента (получать из чанка корректный видеофайл и слать его на сервер) — либо, возможно, дописывать мету руками (пока непонятно, как именно, у нас нет такого опыта работы с контейнером, чтобы разобрать его на запчасти и понять, где зарыты косяки с заголовками). — либо еще какой-то неочевидный вариант, до которого мы пока не дошли.
Что мешает инициировать передачу сервисным пакетом, писать чанки в duplexStream и прекращать передачу сервисным пакетом?

Я так же делал, только писал голос. Получалось ок

Alex
12.06.2018
16:29:01
Господа, помогите с mongoose пожалуйста: BookingSchema.post('save', async function (next) { try { const Suite = mongoose.model('Suite'); await Suite.findByIdAndUpdate(this.suite, { $push: { bookings: this._id } }); console.log(next) next() } catch (err) { console.log(err) next(err); } }); По какой то причине аргумент next получает значение this. В итоге случается TypeError: next is not a function (console.log(next) выводит сохраняемый объект в консоль, следовательно next === this). Что я делаю не так?

Google
Azzy
12.06.2018
16:31:29
var schema = new Schema(..); schema.post('save', function (doc) { console.log('this fired after a document was saved'); });

Alex
12.06.2018
16:31:39
я извиняюсь. не увидел что у меня post hook

спасибо

Azzy
12.06.2018
16:31:44
аргумент это сам документ как я понял

Alex
12.06.2018
16:32:12
то есть для post hook'a не нужно next вызывать?

Alex
12.06.2018
16:33:05
PR
12.06.2018
16:40:02
Минск?

Oleksandr
12.06.2018
16:40:27
ytn

нет

Alex
12.06.2018
16:40:36
Минск?
менск

PR
12.06.2018
16:41:03
Олекс

Google
Alex
12.06.2018
16:41:23
Олександры еще вна Украине водятся

Sergey
12.06.2018
16:58:32
Что мешает инициировать передачу сервисным пакетом, писать чанки в duplexStream и прекращать передачу сервисным пакетом?
Голос пишется в wav и с ним нет проблем. Но мы уже решили — просто дописываем чанки в тот же файл, увеличивая его. Поменяли формат передачи данных с фронта и заткнули одну дыру из-за не переинициализации getUserStream и перенастроили репликейт-сервер

Sergey
12.06.2018
17:08:59
Yashko?
12.06.2018
18:27:17
@sergeysova

Антон
12.06.2018
18:47:30
Народ, посоветуйте markdown редактор простенький для проекта

Alexander
12.06.2018
18:53:30
ну или встронный в vscode посмотри

Game
12.06.2018
18:53:45
Если юзаешь vscode там встроеный есть

Grigorii
12.06.2018
18:55:18
https://dillinger.io
У него нет синхронного скроллинга(

Alex
12.06.2018
18:55:25
А можно в эксперссе как то миддварь присунуть, что она выполнялась только на GET запросы?

Alexander
12.06.2018
18:55:27
чо ты хочешь

Alex
12.06.2018
18:55:34
причем любые

Grigorii
12.06.2018
18:55:57
это же web
Это проблема? На секунду vscode на том же вебе умеет

Grigorii
12.06.2018
18:57:46
А можно в эксперссе как то миддварь присунуть, что она выполнялась только на GET запросы?
Да, при чём по-разному. Можно просто сделать мидлвара, который будет на все запросы, но в нём делать проверку на метод и next, если не get, это, наверное, самое простое.

Alexander
12.06.2018
18:57:50
Это проблема? На секунду vscode на том же вебе умеет
ну значит тут не додумались, чо даебался

Alex
12.06.2018
18:58:11
app.get('*', middleware) сработает?

Google
Alex
12.06.2018
18:58:30
ща попробую кароч

Alexander
12.06.2018
19:00:42
если тебе именно мидлварь нужна

Alex
12.06.2018
19:01:19
да. такое сработает. ток нафига регулярку пихать?

или это так, на вкус?

Alexander
12.06.2018
19:01:26
я просто протестить

))0)

Alex
12.06.2018
19:01:34
спасибо)

Alexander
12.06.2018
19:25:29
Ты точно существуешь? Ты не бог?

Kendr
12.06.2018
19:26:51
Блять морсик я хотел пошутить

[Anonymous]
12.06.2018
19:27:16
a.k.a. 301 раб на IT галере

Ты точно существуешь? Ты не бог?

Сергей
12.06.2018
19:27:47


Morsik
12.06.2018
19:28:16
ты маковод наверно, да?

Сергей
12.06.2018
19:28:22
+

Alexander
12.06.2018
19:32:46
АААААААААААААААААААА

Чекайте telegram.dog

Google
Yaroslav
12.06.2018
19:46:12
Раньше читал, что стоит для перебора обьекта использовать object.keys + forEach. С выходом for of, это потеряло актуальность?

Yaroslav
12.06.2018
19:47:10
Ок

Alexander
12.06.2018
19:47:19
Ещё же был for in

Alexander
12.06.2018
19:47:22
for of же для итерируемых только?

Alexander
12.06.2018
19:47:25
И сейчас есть

Alexander
12.06.2018
19:48:23
Дока пишет можно да

Alexander
12.06.2018
20:00:20
Есть бэкенд, разбитый на несколько процессов, каждый из которых отвечает за какой-то сервис на сайте. Как лучше общаться между этими процессами? pub-sub в редисе, юникс сокеты или посылать запросы на их internal api?

Alexander
12.06.2018
20:01:06
А что плохого в сокетах?

Таймураз
12.06.2018
20:01:18
В том, что они не масштабируемы в рамках нескольких машин

Я бы на твоем месте очередь взял В лице того же RabbitMQ

Там и RPC организовать можно

Есть еще вот такая хуйня https://habr.com/post/351994/ Но я не юзал

Alexander
12.06.2018
20:03:32
я пытался rabbitmq заюзать, но столкнулся с проблемой, что в предлагаемых разрабами же библиотеках нет коллбека при публикации сообщения. Т.е. я его кидаю, но не уверен, что оно вкинется.

А если я заюзаю уже существующий редис паб-саб? Да, нету ack-ов, но и без них можно в моем случае

Таймураз
12.06.2018
20:05:06
А если я заюзаю уже существующий редис паб-саб? Да, нету ack-ов, но и без них можно в моем случае
Ну раз можно- ебашь Только у редиса в режиме кластеризации, говорят, пропадают запросы иногда

Google
Таймураз
12.06.2018
20:05:13
Он может не записать при нагрузке

Я с таким не сталкивался, ибо на хайлоад проектах не был

Alexander
12.06.2018
20:06:44
@Atassis Если ты юзал rabbitmq, то какую либу для ноды ты юзал?

Alexander
12.06.2018
20:07:02
спасибо

Таймураз
12.06.2018
20:07:44
спасибо
Пожалуйста

Yaroslav
12.06.2018
20:16:21
А если я заюзаю уже существующий редис паб-саб? Да, нету ack-ов, но и без них можно в моем случае
Редис предназначен для того, что не критично потерять и можно пересоздать, задачи не очень подходят. При нагрузках редис можно упускать что-то.

Maxim
12.06.2018
20:42:33
Подскажите пожалуйста инструмент (фреймворк / либу) которая лучше подходит для следующей задачи: Есть n-ное количество лендинг пейджей с формами, при чём это к-во постоянно растёт, формы тоже отличаются - к примеру в одних страна это селект - а вдругих - простой текстовый инпут. Нужно автоматом заполнять эти формы и сабмитить их. В наследство достался легаси код на фантоме и селениуме, но мне кажется что мне проще его переписать чем поддерживать. Вот хотелось бы знать кто чем подобные задачи решает. Пока из нагугленого больше всего понравилось http://nightwatchjs.org/

Maxim
12.06.2018
20:47:21
puppeteer
а в чём его главный профит? какие-то баги/ ограничения есть?

Страница 2139 из 2748