|
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
|
|
Сервер socket на nodejs04.06.2021, 03:48. Показов 782. Ответов 6
Здравствуйте. Не могу разобраться в структуре массивов socket, sockets. Как должно: при подключение отправляется user_nick. Может быть в разных браузерах/вкладках одинаковый user_nick. При отправки сообщения отправляется user_from равный user_nick, а так же user_to. Сервер должен взять и user_from и user_to послать только им сообщение включая отправляющего. Спасибо.
0
|
|
| 04.06.2021, 03:48 | |
|
Ответы с готовыми решениями:
6
Nodejs net socket server and android socket client Прокси Socket.IO NodeJS
|
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
| 05.06.2021, 23:27 | |
|
Сокеты - это просто "налаженный канал". В нем нет механизма авторизации! В "чистом" сокете нет даже механизма пере-подсоедиенения в случае потери связи. Поэтому я перешел на socket.io (НАДстройка над сокетами с кучей "плюшек").
В момент подключения клиента к серверу сервер может перейти в режим ожидания определенных данных, а клиент сразу после подключения может отправить серверу ник/пароль. Если сервер принял эту "пару" и проверил правильность, он может прописать ее себе вместе с ID "канала". Или можно попробовать прямо в объект сокет-пользователя на стороне сервера добавить дополнительные поля. Если сервер принял "левый" пароль, он разрывает канал или отсылает сообщение "неизвестный пользователь" и переводит канал в "игнорируемые". В случае потери соединения надо повторно высылать ник-пароль. Для упрощения сервер иногда выдает таким пользователям уникальный "токен авторизации" под компьютер/браузера. При рассылке сообщения пользователям происходит либо "отправь всем", либо "перебор таблицы подключенных пользователей". В момент перебора проверяете "был ли этот пользователь авторизирован и нужно ли этому пользователю слать это сообщение". (больше года в потрохах сокетах не копался - мог немного ошибиться, но когда-то сам подобную систему авторизации писал)
0
|
|
|
123 / 98 / 15
Регистрация: 02.02.2014
Сообщений: 346
|
||
| 06.06.2021, 01:02 | ||
|
0
|
||
|
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
|
|
| 06.06.2021, 09:53 [ТС] | |
|
andyj, Вы меня совсем не поняли. Авторизация тут совсем не при чём. Может коряво описал.
0
|
|
|
416 / 307 / 113
Регистрация: 28.08.2013
Сообщений: 832
|
|
| 06.06.2021, 14:42 | |
|
HotReboot, На сервере, на событие "connection" генертиуй id и отправь его обратно подключившимуся. Этот же id добавь к объекту socket. Когда клиент получит id запроси список подключённых клиентов, плюс дополнительно сделай рассылку по всем клиентам о подключении нового клиента. Когда клиент о правляет сообщение другт у клиенту, то в сообщении добавляются id от кого и кому. Сервер получив такие сообщение ищет в массиве клиентов id получателя, найдя отправлет.
0
|
|
|
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
|
|
| 06.06.2021, 17:16 [ТС] | |
|
kidASM, Я примерно так делал. Только чуть проще. Мне незачем сообщать всем о новом клиенте. Но загвоздка была отправить конкретному пользователю по нику (а одинаковых ников может быть несколько). Все советы типа io.sockets.connected[id].emit..., io.sockets.sockets[id].emit..., io.sockets.client[id].emit... не приводили к нужному результату и я уже отчаялся поэтому написал сюда, но в конце концов нашёл рабочий io.to(id).emit...
0
|
|
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
||
| 06.06.2021, 19:49 | ||
|
Но основа ответа не поменялась. Есть два подхода! На стороне сервера либо 1) создаем отдельную таблицу связок -"user_сокет_ID" 2) пробуем дополнить прямо объект сокет-клиента (не уверен что получится, но если выйдет - код в разы проще) ...в каждого сокета добавляем его user_nick При рассылке производим "перебор" сокетов. При переборе, получая каждый item сокета проверяем "какой у него ник" и либо шлем ему, либо игнорируем.
0
|
||
| 06.06.2021, 19:49 | |
|
Помогаю со студенческими работами здесь
7
Nodejs + socket.io полёт снаряда Nodejs + Socket.Io Безопасное Подключение Новичок Nodejs как на хостинге запустить сервер? Можно ли интегрировать nodejs сервер на готовый сайт? Мне необходимо отправить данные из формы ajax запросом на сервер на nodejs Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|