Socket.io - есть ли способ сохранить сокетид, чтобы предотвратить создание нового - PullRequest
1 голос
/ 08 мая 2019

После подключения к серверу socket.io для подключения указывается socket.id. Если через некоторое время соединение с сокетом не используется, генерируется новый идентификатор сокета.

Я прочитал много учебных пособий, которые устанавливают соединение "hello world", которое просто соединяет вас, но литературы по одноранговой связи / группе сообщений не так много. Документы содержат трехстрочный абзац о комнатах / пространствах имен, и на каждый вопрос, связанный с этим, дается ссылка на тот же трехстрочный абзац.

Я понимаю, что вы можете создавать и объект / массив чатов (в этом примере). Для этого примера, скажем, это объект. Этот объект выглядит примерно так:

const connections = {
  "randomSocketID1": { 
    recipient: "Mom",
    messages: [Array of Objects]
    //more information
    }
}

Затем я отправляю сообщение на randomSocketID1 -> «Привет». Затем на следующий день я хочу отправить еще одно сообщение "Маме". Будет ли этот socketID таким же ИЛИ ИЛИ НАИМЕНЬШИМ Будет ли "randomSocketID1" обновляться под капотом до его обновленного идентификатора (что звучит невероятно)? Является ли регенерация socketID продуктом сборки мусора или протоколом сокета / движка / websocket?

спасибо за любые разъяснения

1 Ответ

1 голос
/ 29 мая 2019

Таким образом, я все еще не мог найти фактический ответ на это, и по 0 ответам я вижу, что никто не знает.Итак, чтобы убедиться, что идентификатор пользователя и сокета поддерживается, каждый раз, когда пользователь входит в компонент, который подключается к серверу socketio, автоматически запускается update-user, а серверная часть просто находит пользователя и назначает его.это значение.

Итак, у меня есть что-то вроде этого:

chat.component.ts:

ngOnInit(){
  this.socket.emit('update-user', 'Ctfrancia');
}

затем в конце:

const users = {};

io.on('connection', socket => {
  socket.on('update-user', user => {
    if (user in users) users[user] = socket.id;
    else users[user] = socket.id
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...