2015-12-01 1 views
0

Я хочу, чтобы мое подключение к сокету (Socket.io) на WebAPP (Yeoman) имеет следующие функции:Изменение Socket.io пространство имен

Когда без зарегистрированного пользователя посетить веб-приложение. Значение по умолчанию для клиентского сокета прослушивает пространство имен «/ welcome». Когда пользователь регистрируется в webapp, клиентский сокет изменится, чтобы прослушать другое пространство имен ('/ home'). Затем, когда пользователь выйдет из системы, клиентский сокет изменит ответ на прослушивание пространства имен «/ welcome».

Библиотека:

гнездо: socket.io

старшина: yeoman-angular-fullstack

+0

Вы попробовали концепцию «комнаты» в socket.io для этого прецедента? –

+0

номера не могут иметь индивидуальную настройку аутентификации –

ответ

0

я сделать это таким образом:

  1. при оказании определенного шаблона I (с помощью промежуточного программного обеспечения на стороне сервера) пропустите один дополнительный параметр для просмотра, например, isLoggedIn, который, конечно же, true, когда пользователь выполнил вход.

  2. Внутри шаблона просмотра Я создаю скрытый элемент dom и присваиваю ему значение isLoggedIn.

  3. Внутри js-файла клиента перед подключением к сети. Я читал p2 скрытый DOM-значение, чтобы понять, что я должен делать дальше. P2 & p3, к сожалению, является единственным способом, с помощью которого я обычно назначаю значение переменной JavaScript на стороне клиента, которая передается для просмотра. Вы можете, конечно, сделать это через API-вызов, но что угодно.

  4. В зависимости от этой переменной подключайте либо к /welcome, либо к /home через простую инструкцию if.