Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Сервер socket на nodejs (https://javascript.ru/forum/node-js-io-js/82636-server-socket-na-nodejs.html)

Vlasenko Fedor 04.06.2021 13:00

уберите тогда редис
пользователи если идентифицированные работаете с их идентификаторами, токенами, cookies, ключами
тем, что используете при идентификации
const socket = io('youHost', {
    "transports": ['websocket']
});

только так, вы используете вебсокеты, иначе пингуете сервак обычными аякс запросами
каждая вкладка, браузер, клиент - это новая сессия вебсокета

HotReboot 04.06.2021 13:06

Vlasenko Fedor,
Вы слишком не понятно для меня объясняете. Если бы я был уровнем выше, то я бы и на задавал такие вопросы.

ksa 04.06.2021 13:46

Цитата:

Сообщение от HotReboot
Вся проблема в том, что не из документации, не из примеров в инете я не могу найти пример как вытащить id конкретного соединения

Так по ссылке, что я давал, есть пример этого

const express = require('express'),
  app = express(),
  http = require('http').createServer(app),
  io = require('socket.io')(http)

const host = '127.0.0.1'
const port = 7000

let clients = []

io.on('connection', (socket) => {
  // Вот же он - socket.id
  console.log(`Client with id ${socket.id} connected`)
  clients.push(socket.id)

  socket.emit('message', "I'm server")

  socket.on('message', (message) =>
    console.log('Message: ', message)
  )

  socket.on('disconnect', () => {
    clients.splice(clients.indexOf(socket.id), 1)
    console.log(`Client with id ${socket.id} disconnected`)
  })
})

https://nodejsdev.ru/doc/websocket/

ksa 04.06.2021 13:48

Цитата:

Сообщение от HotReboot
если открыты 3 вкладки и одна пересоединилась, то в других соединения порвутся

В примере по ссылке такого не должно быть... :no:
Там все соединения сами по себе.

HotReboot 04.06.2021 14:58

ksa,
Это для дисконект как я вижу. А отсылает в этом коде всем.

ksa 04.06.2021 18:22

Цитата:

Сообщение от HotReboot
А отсылает в этом коде всем.

Это ведь только часть кода... Только показать "где находится" ИД соединения.
Все остальное смотри по ссылке, что я давал уже 2 раза (см.выше).

HotReboot 04.06.2021 20:38

ksa,
Я, за последние двое суток, перелопатил советов которых хватит на "Войну и Мир". я уже весь запутался, потому как одни советы такие, другие такие и всё это не работает нужным мне образом. Или уже глаз замылися, что я не так понимаю, либо одно из двух. Уже даже к фрилансерам сбегал и бесполезно.

HotReboot 05.06.2021 03:23

ksa, Vlasenko Fedor,
Кстати отправка одному пользователю по id.
io.sockets.connected[id].emit...
io.sockets.sockets[id].emit...
io.sockets.client[id].emit...
которыми пестрит весь интернет приводили к ошибки и только где-то на задворках нашёлся рабочий
io.to(id).emit...
Подразумеваю, что-то с версиями связанно.


Часовой пояс GMT +3, время: 09:50.