@nodejs_ru

Страница 677 из 2748
Павел
27.03.2017
21:51:54
Всем привет. Расскажите кто как реализовывал чат на сокетах с комнатами (приватные сообщения между двумя пользователями). Необходимо чтобы была возможность отправить сообщение напрямую в сокет, по роуту и напрямую через контроллер (рассылка). Есть сокет-контроллер чата, контроллер самого чата, и, соответственно роут

Я это уже реализовал, но, чую, костыльно

Основная проблема была при пробросе сокет соединения в контроллер

Denis
27.03.2017
21:56:46
Есть такое, но на питоне)

Google
Denis
27.03.2017
21:56:51
Кинуть)?

Те же вебсокеты только в профиль

Constantin
27.03.2017
22:02:16
https://code.tutsplus.com/tutorials/real-time-chat-with-nodejs-socketio-and-expressjs--net-31708 я что гуглил expressjs популярная надстройка над нодой

Sheldhur
28.03.2017
03:36:28
вставка 4320 срок в sqlite c# 1.81 сек js 175.69 сек это нормально?

Sheldhur
28.03.2017
03:43:12
нет, серьезно?

Таймураз
28.03.2017
03:49:42
Покажи код

Sheldhur
28.03.2017
03:59:14
https://pastebin.com/XM7Y4Cur

переделал на raw query стало 54 секунды

мб проблема ещё в async\await бабел же генерирует из этого херову тучу кода переделывая в генераторы

Таймураз
28.03.2017
04:04:41
.
У тебя этот код синхронно исполняется Нужно создать массив промисов и засунуть их в promise.all()

Sheldhur
28.03.2017
04:05:40
эм, но если один из промисов вернет реджет, то всё остановится же

Google
Sheldhur
28.03.2017
04:08:13
о, да

14

уже лучше

но все равно медленней :с

Таймураз
28.03.2017
04:08:59
Промисы медленные

Bluebird

Sheldhur
28.03.2017
04:10:37
спсб, поковыряю

Bluebird
я так понял в sequelize оно вшито?

Таймураз
28.03.2017
04:30:32
import Promise from 'bluebird'; пропиши и все

Sheldhur
28.03.2017
04:31:09
http://bluebirdjs.com/docs/working-with-callbacks.html#sequelize

а зачем тогда нужны yield\async\await, если они только замедляют? или я что-то не понимаю

просто чтобы от колбеков колбеков избавиться?

equicolor
28.03.2017
05:02:35
С bluebird стало быстрей?)

Sheldhur
28.03.2017
05:17:56
да чет не особо

Таймураз
28.03.2017
05:25:14
Покажи код

Sheldhur
28.03.2017
05:34:57
https://pastebin.com/QDj1RtwZ

Покажи код
что не так?

Таймураз
28.03.2017
05:42:57
Вроде все норм Можно еще не строку генерировать, а значения передавать, должно быть быстрее, точно хз.

Google
Таймураз
28.03.2017
05:44:36
14- многовато для js Тут нужно смотреть, что быстрее на js-е пашет.

Тебе по сути можно драйвер для sqlite напрямую использовать Вручную таблицу генерить и запросы

Sheldhur
28.03.2017
05:45:38
electron

Таймураз
28.03.2017
05:46:16
@electron_ru

Sheldhur
28.03.2017
05:46:31
через remote.require не хочет sqlite подключать

Таймураз
28.03.2017
05:47:02
Работай лучше в главном процессе

И если важна скорость, асинки убери

Sheldhur
28.03.2017
05:47:55
ну это всё пробрасывать

Таймураз
28.03.2017
05:48:11
Несложно же

Sheldhur
28.03.2017
05:49:14
без асинков рендер виснет и не реагирует ни на что

Таймураз
28.03.2017
05:52:19
Перепиши на промисы

Sheldhur
28.03.2017
05:52:41
а почему в мейнпроцессе должно быть лучше?

Таймураз
28.03.2017
05:53:35
Точно не знаю, но что-то мне подсказывает, что работать в фоновом процессе лучше, чем в браузерном потоке

Sheldhur
28.03.2017
06:29:47
не быстрее

Dmitry
28.03.2017
06:37:19
вставка 4320 срок в sqlite c# 1.81 сек js 175.69 сек это нормально?
А попробуй вставлять не по одной записи, а сразу пачкой.

Sheldhur
28.03.2017
06:38:03
sqlite не умеет пачкой, только через транзакцию если

Dmitry
28.03.2017
06:38:10
Я правда не уверен что sqlite так умеет

Ну значит через транзакцию :)

Sheldhur
28.03.2017
06:38:42
ну это не особо поможет, имхо

Dmitry
28.03.2017
06:38:57
Может в шарпе через транзакцию идет по умолчанию

Google
Sheldhur
28.03.2017
06:39:20
что-то другое сжирает скорость

Dmitry
28.03.2017
06:39:48
Пробовать надо, не знаю как драйвер под капотом работает. В обычных бд пачкой всегда прилично быстрее

Sheldhur
28.03.2017
06:41:15
мб sequelize на столько слоупочный

Dmitry
28.03.2017
06:42:15
Нормальный он, тут же чистый запрос. Я так по миллиону записей гоняю и все шустро

Попробуйте все же через транзакцию данные записать, если не поможет будем думать

Sheldhur
28.03.2017
06:51:51
да ну не, в c# без транзакций же

Admin
ERROR: S client not available

Sheldhur
28.03.2017
06:54:53
ща попробую

Andrey
28.03.2017
06:59:05
В електроне если делать через рендер процесс то будет медленней. Там под капотом чтото типа рпц. Надо из мейн процесса выполнять ) (код не зырил)

Dmitry
28.03.2017
07:00:05
Прототипное наследование
Не то. Видимо не правильно описал задачу. Есть некий сервис который использует настройки, которые может поменять другой сервис (property)

И эти property можно менять не перезагружая никакой процесс (они должны отлавливать изменения и что-то у себя обновлять) или там процессы протекают по таймеру и новые значения в property подхватятся при слудующем тике

Dmitry
28.03.2017
07:04:48
redis pubsub?
Ну эт понятно. Есть готовые решения?

Vint
28.03.2017
07:05:35
Ну эт понятно. Есть готовые решения?
ioredis как драйвер и подключение к одной редиске (или кластеру)

Dmitry
28.03.2017
07:05:36
Я уже вчера запилил свой костыль на монго+rabbitmq

Vint
28.03.2017
07:06:09
Ну, кролик не совсем для этого, мне кажется.

Dmitry
28.03.2017
07:06:26
Ну у меня просто редиса пока нет в проекте, из-за одних proprty его ставить не вар

Vint
28.03.2017
07:06:28
Или вот попробуй, я всё ленюсь https://github.com/RIAEvangelist/node-ipc

Dmitry
28.03.2017
07:07:10
Ща гляну. Спасибо

Google
Vint
28.03.2017
07:07:47
Ну у меня просто редиса пока нет в проекте, из-за одних proprty его ставить не вар
Ну, получается, что это важная часть системы (свойства эти и настройки). А значит надо пилить нормальное решение).

Vint
28.03.2017
07:08:11
Крутая штука
Есть опыт в продакшене?

Вот сравнение интересное https://60devs.com/performance-of-inter-process-communications-in-nodejs.html

Dmitry
28.03.2017
07:10:37
Или вот попробуй, я всё ленюсь https://github.com/RIAEvangelist/node-ipc
Классная штука, но по факту, тоже самое что я сделал. Только у меня они еще и сохранятся в бд. А тут нет. Больная скорость не нужна, кролика заглаза хватит.

Это что-то типа конфига, которых хранится в бд

Vint
28.03.2017
07:11:33
Ну, как вариант. Сохранение в БД - это делается инициатором события, к рассылке не относится же.

Я понимаю. У самого такое есть)

Dmitry
28.03.2017
07:12:12
Эт тоже верно

Vint
28.03.2017
07:12:38
Если БД постгрес, то можно ещё его нативным notify воспользоваться. Но он дико куцый.

Dmitry
28.03.2017
07:12:56
Запилю модуль для этого всего.

Если БД постгрес, то можно ещё его нативным notify воспользоваться. Но он дико куцый.
Вот как раз ipc отличный вариант для случая когда БД без событийное и нет ни редиса ни кроликов

Vint
28.03.2017
07:15:50
Вот как раз ipc отличный вариант для случая когда БД без событийное и нет ни редиса ни кроликов
Ну да, но надо попробовать, как оно в реальности будет. И, желательно, на более мощных задачах, чем синхронизация конфигов)

Dreamerinnoise
28.03.2017
07:19:37
что есть рпц?
https://en.wikipedia.org/wiki/Remote_procedure_call

Sheldhur
28.03.2017
07:23:09
ну вообще в рендер sequelize подрубается через require(electron).remote.require('sequelize'), это как раз через ipc и работает, так что sequelize по сути в мейн процессе вертится

если я всё правильно понял

Oleg
28.03.2017
07:24:59
Всем привет!

Andrey
28.03.2017
07:26:14
Надо проверять я тебе такое не подскажу) -- сам хз Имхо лучше бы ты просто данные передавал в мейн процесс , через коллбеки. Но это только предположение что так будет лучше

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