169 похожих чатов

1. У меня много таблиц. Как мне сделать 1 коннект

на все приложение*?

19 ответов

2 просмотра

В сокет ио есть концепция комнат, это базовый паттерн. Реализация - шлешь в коннекшн уточняющую информацию о том, что тебе (не) нужно отслеживать

Nava-Sagi Автор вопроса
Dmitry Remezov
В сокет ио есть концепция комнат, это базовый патт...

Про сокет ИО - это как пример, или при чем здесь сокет ио?)

Nava-Sagi Автор вопроса
Dmitry Remezov
В сокет ио есть концепция комнат, это базовый патт...

Я так понял, здесь подразумевается, что и бэк переделывать надо будет?)

Nava Sagi
Я так понял, здесь подразумевается, что и бэк пере...

У сокет ио есть клиент и сервер часть Если ее юзать будешь то скорее всего

Nava Sagi
Я так понял, здесь подразумевается, что и бэк пере...

Если у тебя бек написан, как по сокету на id - да, это мусор

Nava-Sagi Автор вопроса
:) ник
У сокет ио есть клиент и сервер часть Если ее юза...

У меня серверная часть в Django, и я коннекчусь непосредственно туда, бэк не мой

Nava-Sagi Автор вопроса

Псевдокод на get/set. Делаешь какую-то абстракцию над сокетом. Делаешь абстракцию над событиями. Динамично подписываешься на конкретный тип событий с конкретным id. Я хз, как это понятно описать без нормального стм, но попробую const ws = createWs(new WebSocket('...')); // ... ws.on('kek:updated').watch(updates => { if (updates.uuid !== getSelectedKek()) return; updateSelectedKek(updates); }) function selectKek(uuid) { setSelectedKek(uuid); ws.send('kek:watch', { ids: [uuid] }); } function updateSelectedKek(updates) { const uuid = getSelectedKek(); setKekes(getKekes().map(kek => (kek.uuid === uuid ? { ...kek, ...updates } : kek))); }

Dmitry Remezov
Псевдокод на get/set. Делаешь какую-то абстракцию ...

- создаешь общий инстанс сокета - при изменении выбранного ID шлешь событие "отслеживать Kek только с этим ID" и сохраняешь ID в стор - подписываешься либо на событие "Kek с этим ID изменился", либо на событие "Kek изменился" и фильтруешь по ID - в обработчике события обновляешь Kek в списке по ID - при уходе со страницы шлешь событие "отписаться от Kek"

Dmitry Remezov
Псевдокод на get/set. Делаешь какую-то абстракцию ...

Недавно немного работал с вэб сокетами в целом работа сводилась к отправке сообщений серверу по сокету и ожиданию ответа. Вот я и подумал. А что если такие парные операции оборачивать в промис с таймаутом ожидания? или такое не очень хороший подход?

Rain
Недавно немного работал с вэб сокетами в целом ра...

Что оборачивать? Там же просто вешаются слушатели на на соединение и срабатывают они только когда приходить что то с сервера

Оборачивать сразу две операции, запрос и ответ. КОгда запрос посылаем, то передаем ид по которому можем связать ответ с запросом резолвы промисов записываем куда нибудь типа promiseId: resolve когда ответ ответ приходит, то из карты по ид берем резолв и вызываем его передавая в него ответ а в коде это будет выглядеть потом типа const res = await "сделай запрос на сокет и верни результат".

Dmitry Remezov
В сокет ио есть концепция комнат, это базовый патт...

Концепция комнат в том, что на бэке есть метод отписки от комнаты и подписки на комнату. На фронте можно не заморачиваться и просто получать ивенты (подконнектившись к совету один раз + юзать один ивент с фронта для смены прослушиваемой комнаты). Список коннектов к комнатам лучше в кэше на сервере. И все это для того, чтоб не хватать все ивенты на фронте подряд по одному каналу (и выбирать из них нужный). Для справки. Заморочиться с стм - это прям если охота конкретно пое*аться на фронте ))

Rain
Оборачивать сразу две операции, запрос и ответ. К...

А, ну тебе уже всё ответили. await untilSubscribed можно await waitForEvent (читай - once) можно Для чего-то унарного можно, но сами сокеты - стрим, нет там промисов

Dmitry Remezov
А, ну тебе уже всё ответили. await untilSubscribed...

Ага, спасибо, я уже примерно понял о чем суть.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта