Aga
21.09.2018
21:50:26
Роман
21.09.2018
21:51:50
И третий, типа посредника между дубликатами
Да никакие это не дубликаты. Половина пользователей подключены к А, остальная половина к Б. На бэке сообщения ходят по идентификаторам, от пользователя 10 к пользователю 15 (например). Посредник знает что пользователь 10 подключен к А, а пользователь 15 к серверу Б.
Dmitriy
21.09.2018
21:52:14
Если совсем на пальцах, у эрланга каждое соединение будет ну считай его легковесный процесс. У него есть pid внутри машины. Как только ты цепляешь несколько машин в кластер, ты можешь отправить любое сообщение в любой пид. Для регистра пидов мнезия, как стандартная встроенная в эрланг база на ets/dets. На выходе счастье
Aga
21.09.2018
21:52:29
Google
Aga
21.09.2018
21:52:53
Примерно один сервак сколько пассивных соединений потянет?
10к осилит?
Роман
21.09.2018
21:53:25
Aga
21.09.2018
21:53:50
Пиздец
Dmitriy
21.09.2018
21:54:21
Если хреново написать — не осилит)
Aga
21.09.2018
21:54:22
Есть ли необходимость дубликата после этого?
Роман
21.09.2018
21:54:32
Но это синтетика. Для общего понимания можешь ознакомиться всё же.
Trilium
21.09.2018
21:54:43
JWT?)))
jwt и что угодно. у вебсокета есть стадия хендшейка, у вас будут куки с клиента, а по ним аутенфицирйте как хотите. так это работает.
Dmitriy
21.09.2018
21:55:19
Aga
21.09.2018
21:55:35
?
21.09.2018
21:57:21
Роман
21.09.2018
21:57:30
Sergey
21.09.2018
21:57:41
Google
Aga
21.09.2018
21:57:46
В бд сессия привязывается к юзер агенту
То есть, клиент даёт Sid и свой user agent для верификации
Ладно, ребята, спасибо за помощь)
Я спать
Gor
21.09.2018
22:04:02
я кстати решал такую задачу
когда mfw писал
я вижу в общем два варианта решения (если обсуждать в целом):
- использовать общую базу ( redis, rabbit etc) к которой каждый websocket server worker конектится и выбирает данные для каждого клиента
- рассылать на все воркеры через TCP/UDP сообщение, и опять же на основе кому, раскидывать сообщение.
Trilium
21.09.2018
22:18:07
в три строчки https://socket.io/docs/using-multiple-nodes/
var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
и теперь можно запускать сколько хочешь инстансов ноды, вебсокеты могут коннектится к любым из них и все вместе общаться. работает все на redis pub/sub
io.emit('hi', 'all sockets'); - заэмитит всем сокетам, даже если они не подключены к этой ноде
io.to('room42').emit('hello', "to all clients in 'room42' room");
а с помощью https://github.com/socketio/socket.io-redis можно слать сокету по его id из любой ноды. даже если эта нода вообще с сокетами не работает(такое иногда нужно)
// sending to all clients
io.emit('broadcast', /* ... */);
// sending to all clients in 'game' room
io.to('game').emit('new-game', /* ... */);
// sending to individual socketid (private message)
io.to(<socketid>).emit('private', /* ... */);
Alexander
21.09.2018
22:19:32
хуясе технологии
Sergey
21.09.2018
22:20:17
Trilium
21.09.2018
22:20:42
Alex
21.09.2018
22:50:42
Denis
21.09.2018
23:12:44
А как в nighmare.js достать из документа ссылку и перейти по ней .evaluate(function () {
return document.querySelector('#url').href;
})
.then(function (url) {
//Never does anything, never changes the current URL
nightmare.goto(url);
}) (так не работает говорит not defined )
Alexander
21.09.2018
23:57:15
Сергей
21.09.2018
23:57:54
Alexander
21.09.2018
23:58:40
Дмитрий
22.09.2018
03:35:33
Sergey
22.09.2018
05:18:02
Grigorii
22.09.2018
06:29:19
Добрый день.
Подскажите, есть ли для feathersjs или может универсальная библиотека для описания политик ролей?
Подобная тому, какая используется в sails.
Находил feathers-permissions, но она очень простая, и описывает только роли пользователям в целом. Требуется более сложное, чтобы описывать права пользователя в конкретной группе при работе с конкретной сущностью.
Google
Grigorii
22.09.2018
06:32:26
Вообще, выбираю фреймворк для серверной части SPA приложения.
Ранее использовал преимущественно просто Express и больше делал MPA приложения.
Требуется сделать приложение-редактор, в котором есть пользователи, группы и проекты. Проекты будут совместно редактироваться пользователями.
Выбираю между feathers и sails.
Против sails пока то, что это MVC фреймворк, который бы точно взял для MPA, а тут казалось бы можно по-проще.
С другой стороны у sails есть уже определённая структура приложения, в которую входит сразу всё, что мне нужно (+ лишнее).
Есть ещё подобные библиотеки?
https://www.npmjs.com/package/promise-policies
Alexander
22.09.2018
07:02:29
Grigorii
22.09.2018
07:05:45
Это недо rbac?
Не видел такой, сейчас посмотрю подробно.
Но при первом взгляде на readme, она тоже роль-описывающая, разделяющая юзеров на роли
Alexander
22.09.2018
07:06:49
Grigorii
22.09.2018
07:08:22
rbac.can принимает на вход три строки, кто что и с чем хочет делать на уровне просто имён сущностей. Как тут учесть контекст, т.е. то, какой конкретно юзер, и какую конкретно сущность трогает - не очень понятно.
В примерах нет, api ещё не дочитал, но хотелось бы документацию не только из api состоящую
Alexander
22.09.2018
07:09:50
Мне шо, свой пакет сделать чтоле?
Ну, может и сделаю...
Grigorii
22.09.2018
07:13:45
Мне понравились политики в sails, неужели нет подобного отдельным пакетом...
Тут не сложно, конечно, свой велосипед написать, но как-то хотелось без этого
На rbac я пока не понял даже, как описать, что пользователь может редактировать только вой профиль...
Ок, я понял идею rbac
Vladimir
22.09.2018
07:45:40
всем привет, а можно ли из питона вызывать функции npm пакета?
Grigorii
22.09.2018
07:48:53
Vladimir
22.09.2018
07:49:30
понял, а много времени нужно чтоб в ноду вникнуть?
мне один скрипт буквально написать
просто пакет только под ноду есть нужный
Grigorii
22.09.2018
07:50:30
Примёр обёртки для выполнения того же действия
http://sweetme.at/2014/02/17/a-simple-approach-to-execute-a-node.js-script-from-python/
Vladimir
22.09.2018
07:50:31
с подобный синтаксис читаю
Google
Vladimir
22.09.2018
07:51:20
попробую обертку тогда написать
Grigorii
22.09.2018
07:52:29
Можно ещё глянуть nexe, чтобы весь этот скрипт с нужной библиотекой и нужной версией ноды засунуть в exe, если вы под виндой
Vladimir
22.09.2018
07:58:06
спасибо большое)))
Alexander
22.09.2018
07:59:31
Артем
22.09.2018
08:11:41
Питон заэбис
Alex
22.09.2018
08:16:16
Угу, самое то для сервисов ?
Aga
22.09.2018
08:45:22
Если на уровне кода можно решить эту проблему
Без всяких ролей
Alexander
22.09.2018
08:46:07
што?
Aga
22.09.2018
08:46:37
Ништо
Maxim
22.09.2018
10:33:44
Привет! На борту: монга, монгуз. Подскажите, пожалуйста, как красиво сделать следующее:
- нужно запилить ендпоинт/ф-цию/модуль, которая сможет делать в каком либо виде джойн двух коллекций, и дальше - делать по этому джойну пагинацию/фильтрацию/сортировку + обрезать ненужные поля.
пока я кроме костылей ничего путьнего придумать не могу =(
если просто "заджойнить две коллекции" можно на уровне джаваскрипта, то как потом поверх этого организовать пагинацию и сортировку - не пойму
юз кейс - админка, две коллекции - автомобили и водители - где в таблике с водителями нужно показывать инфу про авто (связь условно 1:1)
Alexander
22.09.2018
10:37:15
Maxim
22.09.2018
10:37:43
их же нужно одновременно делать по двух табличках (
Alexander
22.09.2018
10:38:03
Google
Maxim
22.09.2018
10:38:51
Alexander
22.09.2018
10:39:23
Maxim
22.09.2018
10:39:39
ручками наверное
+ чисто в теории - я могу создать "виртуальную" модельку/схему, которая сможет агрегировать данные из двух реальны коллекций?
Alexander
22.09.2018
10:40:02
ща
а, он только в виртуальные свойства может
Maxim
22.09.2018
10:41:44
Alexander
22.09.2018
10:42:00
это как?
Api - https://mongoosejs.com/docs/api.html#schema_Schema-virtual
Doc - https://mongoosejs.com/docs/guide.html#virtuals
Voskresus
22.09.2018
10:42:24
Maxim
22.09.2018
10:42:47
и полностью согласен
Voskresus
22.09.2018
10:42:55
Зачем вы все монго берете ? вам че реляционных баз мало ?
Понял
Alexander
22.09.2018
10:43:10
Maxim
22.09.2018
10:43:26