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
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
Aga
21.09.2018
21:29:36
Роман
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 соединение постоянно открытое висит. Просто добавляй соединения в массив клиентов и держи их там. В чём проблема? При обрыве/переподключении по сессии/токену определяешь пользователя.
Aga
21.09.2018
21:35:38
Роман
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
Если я подключился к первому, а ты ко второму, как я тебе сообщение пошлю
Роман
21.09.2018
21:45:19
Aga
21.09.2018
21:45:21
Dmitriy
21.09.2018
21:45:26
А вот это уже архитектурный вопрос
Тебе нужно иметь id процесса
Ну или соединения
И держать его в редисе, например, ну или где тебе угодно
Aga
21.09.2018
21:46:16
То есть всё-таки можно держать соединение в редисе?
Роман
21.09.2018
21:46:17
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
Dmitriy
21.09.2018
21:48:45
Роман
21.09.2018
21:49:07
Dmitriy
21.09.2018
21:49:18
Это его таксказать фишка
Aga
21.09.2018
21:49:26
Типа сделать 2 дубликата
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
И третий, типа посредника между дубликатами