2016-06-20 3 views
0

Я разрабатываю приложение чата в андроиде с Socket.io & node.js. Каждый раз для нового подключения изменяется ключ ID для клиента. Поэтому, чтобы отправить сообщение конкретному пользователю, мне нужен еще один обязательный параметр, например, регистрация пользователя по электронной почте или номеру телефона. Я держу почты, сокетов идентификатор, статусом (онлайн/оффлайн) в базе данных MySQL для нового клиента & обновления только сокета ID при зарегистрированном входе пользователя в системе снова.Как фиксированный сокет идентификатор для клиента Socket.io

Для сообщения я сохраняю все сообщения &, отправляя их получателю при входе в систему с новым идентификатором сокета.

Мои вопросы:

  1. Есть ли возможность исправить гнездо ид для клиента или нет?
  2. С приведенным выше объяснением, хожу ли я в правильном направлении для простого чата?

ответ

0

Как я это делал, каждый раз, когда пользователь подключается, я добавляю их в объект и сохраняю свое имя пользователя в качестве ключа и сохраняю сам сокет в качестве значения. Например:

var connectedUsers = {}; 
io.on('connection', function(socket){ 
    connectedUsers[username] = socket; 
}); 

, то вы всегда можете получить их гнездо ID как так

var id = connectedUsers[username].id; 
Смежные вопросы