@nodejs_ru

Страница 2584 из 2748
Tarjei
21.09.2018
19:11:43
Команду из за рубежа нанимать будем

Gor
21.09.2018
19:12:01
вот лучше команде задавать вопрос. речь не в инструменте а в владении им

Aga
21.09.2018
19:12:04
Tarjei
21.09.2018
19:12:12
Запад

Google
Aga
21.09.2018
19:12:40
Если у вас бабло есть, наймите консультанта

Архитектурного специалиста

Tarjei
21.09.2018
19:13:43
Спасибо за совет.

Alexander
21.09.2018
19:16:57
шо тут творилось

опять пхп?

Richard
21.09.2018
19:17:25
Пхп

Топ

Aga
21.09.2018
20:11:49
Господа, нужен ваш совет

Вопрос для сокет-гуру

коннекшн в бд хранить?

Trilium
21.09.2018
20:24:34
зачем коннекшн хранить?

Alex
21.09.2018
20:25:10
Чтобы между рестартами процесса его из базы поднимать? ?

Aga
21.09.2018
20:25:42
зачем коннекшн хранить?
Понадобиться хранить же вроде :D

Google
Aga
21.09.2018
20:26:28
При входе на залогенную страницу, чекается есть ли подключение, если нет - создаётся. Но сервер должен же знать кто есть кто, то есть хранить соединение

Trilium
21.09.2018
20:26:33
Alex
21.09.2018
20:29:01
из какой базы? мы же про вебсокеты
Я не так вопрос прочитал, и он показался мне очень смешным ☺️

Aga
21.09.2018
20:29:52
Если хранить в редисе, то встанет проблема актуальности соединения

То есть, придётся чистить часто

Роман
21.09.2018
21:28:32
коннекшн в бд хранить?
Что бы это могло значить? Как ты себе это представляешь?

Aga
21.09.2018
21:29:11
В редисе думаю хранить

Alexander
21.09.2018
21:29:33
В редисе думаю хранить
а понимаешь что ты хранишь то?

Роман
21.09.2018
21:30:02
Соединение в бд хранить
Что значит хранить соединение? Объясни как ты это понимаешь.

Aga
21.09.2018
21:30:03
Чтобы достать в нужное время и послать сообщение

Ну типа подключается юзер

Его ws пишется в бд

Роман
21.09.2018
21:31:12
Aga
21.09.2018
21:31:49
ws.on("connection", (Conn) => {})

Conn хранить

Я с мобилы, примерно написал

И можно взять conn другого юзера и послать что-то

Роман
21.09.2018
21:33:15
Conn хранить
Ты представляешь что такое соединение? Его нельзя хранить в бд. Ты можешь деражть соединение открытым или закрыть его и при необходимости открыть его заново.

Aga
21.09.2018
21:34:07
Если мне надо тебе в чате что-то написать, как я найду тебя?

Google
Aga
21.09.2018
21:34:23
То есть, надо же знать к кого какой коннекшн

Роман
21.09.2018
21:35:07
WS соединение постоянно открытое висит. Просто добавляй соединения в массив клиентов и держи их там. В чём проблема? При обрыве/переподключении по сессии/токену определяешь пользователя.

Роман
21.09.2018
21:36:45
Так почему нельзя хранить в редисе?
Разберись что такое соединение (открытый сокет) и вопросы отпадут.

Aga
21.09.2018
21:37:29
Я думал юзать редис для масштабируемости

Ибо массив не поделишь между дубликатами

Дубликатами одного микросервиса

Роман
21.09.2018
21:39:11
Ибо массив не поделишь между дубликатами
Соединение ты тоже не передашь между серверами.

Aga
21.09.2018
21:39:58
Соединение ты тоже не передашь между серверами.
Хмм, как в этом случае послать юзеру сообщение?

То есть, два разных автономных микросервиса должны знать о всех активных юзера

Роман
21.09.2018
21:41:07
Хмм, как в этом случае послать юзеру сообщение?
1. Сервер прослушивает порт 2. Клиент подключается к порту Образована двусторонняя связь. Шли сообщения в обе стороны. Если соединение оборвалось его нужно заново создавать. Его нельзя сохранить/передать и т.д.

Aga
21.09.2018
21:41:25
Да я знаю

Речь не об этом, реализовать массив соединений не варик

Ибо надо на два сервера один массив

Роман
21.09.2018
21:42:00
То есть, два разных автономных микросервиса должны знать о всех активных юзера
Знать они могут, по идентификатору (любому), а передавать само подключение нельзя.

Aga
21.09.2018
21:42:19
Роман
21.09.2018
21:42:25
Ибо надо на два сервера один массив
Ты не сможешь с одним соединением клиента общаться с разных серверов.

Я понял что нельзя, но какой выход из ситуации?
Менять логику приложения. Ты совсем не туда забрёл :)

Dmitriy
21.09.2018
21:43:30
Не ну теоретически, что мешает пробросить открытый сокет другому процессу?

fileno и вперед

Google
Роман
21.09.2018
21:43:52
Не ну теоретически, что мешает пробросить открытый сокет другому процессу?
Ничего не мешает. Но в такой ситуации нет смысла шарить что-то.

Dmitriy
21.09.2018
21:44:01
Если линукс

Роман
21.09.2018
21:44:07
Он хочет чтобы два разных узла общались с клиентом по одному сокету...

Aga
21.09.2018
21:44:16
У меня есть 2 сервера, автономных

Роман
21.09.2018
21:44:36
Aga
21.09.2018
21:44:45
Они дублируют функционал друг друга, для лоад балансинга

Роман
21.09.2018
21:45:03
Они дублируют функционал друг друга, для лоад балансинга
Так я же сказал по идентификатору. А ты говоришь об одном соединении.

Aga
21.09.2018
21:45:08
Если я подключился к первому, а ты ко второму, как я тебе сообщение пошлю

Dmitriy
21.09.2018
21:45:26
А вот это уже архитектурный вопрос

Тебе нужно иметь id процесса

Ну или соединения

И держать его в редисе, например, ну или где тебе угодно

Aga
21.09.2018
21:46:16
То есть всё-таки можно держать соединение в редисе?

Роман
21.09.2018
21:46:17
Тебе нужно иметь id процесса
Как это? У него два сервера же.

Dmitriy
21.09.2018
21:46:21
Когда ты хочешь отправить сообщение, выгребаешь идентификатор процесса, находишь на каком сервере он живет

Не системный идентификатор, делаешь какой-нибудь uuid

Google
Aga
21.09.2018
21:47:09
У меня есть идентификатор, с этим проблем нет

Dmitriy
21.09.2018
21:47:12
И куда-нибудь складываешь. Что, например, uid такой-то подключен к такому-то серверу

Aga
21.09.2018
21:47:23
Единственная проблема, единая точка хранения соединений

Dmitriy
21.09.2018
21:47:25
Надо отправить сообщение, пинаешь сервер, дальше твоя логика

Тебе надо хранить метаданные

Роман
21.09.2018
21:47:50
Ещё раз, это получится простой форвард через нутро сервера. Он изначально совсем не это хотел. Он хотел разделить/иметь копию одного массива подключений на двух серверах.

Dmitriy
21.09.2018
21:48:15
Че только не сделают чтобы не писать на эрланге)

Роман
21.09.2018
21:48:45
Че только не сделают чтобы не писать на эрланге)
Эрланг умеет переносить активные соединения с сервера на сервер? ?

Роман
21.09.2018
21:49:07
Пофиг, в любом случае нужна точка синхронизации
Так я ему про это и толкую с самого начала. Кто-то должен заниматься обработкой всех балансировщиков.

Dmitriy
21.09.2018
21:49:18
Это его таксказать фишка

Trilium
21.09.2018
21:49:36
может вам просто нужно узнать по вебсокету кто это - это можно. http://iostreamer.me/ws/node.js/jwt/2016/05/08/websockets_authentication.html как скейлить вебсокеты(это для socket.io) - https://socket.io/docs/using-multiple-nodes/ все это делается в пару строк. в помощь https://github.com/socketio/socket.io-redis https://github.com/socketio/socket.io-emitter

Aga
21.09.2018
21:49:49
И третий, типа посредника между дубликатами

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