2016-10-25 2 views
0

Как обновить/заполнить объект socket.request.session.passport в Node.js с помощью вызова Ajax?Обновление объекта запроса socket.io

Я попытался повторно соединить сокеты после вызова Ajax безрезультатно. Кажется, что этот объект на сервере обновляется только после загрузки страницы, предполагая, что клиентская библиотека socket.io считывает файлы cookie в браузере при загрузке и никогда больше не смотрит на них.

Я использую Express, passport.js и socket.io.

+1

'socket.request' приходит от состояния, когда создается соединение socket.io. Если вы уничтожите объект socket.io на клиенте и создадите совершенно новый, вы должны получить новое соединение на сервере и новый «socket.request» на сервере. Вы можете просто посмотреть, как лучше использовать паспорт и socket.io вместе здесь: https://github.com/jfromaniello/passport.socketio – jfriend00

+0

Да, он никогда не смотрит на файлы cookie, потому что файлы cookie отправляются только с сокетом. io подключение. Никакие файлы cookie никогда не отправляются повторно, пока соединение остается подключенным, поскольку, когда оно связано с исходным HTTP-запросом (на нем есть файлы cookie), все будущие сообщения - это просто пакеты webSocket/socket.io. При обмене сообщениями через socket.io сообщения cookie не отправляются. – jfriend00

ответ

0

Благодаря @ jfriend00 решение заключалось в том, чтобы уничтожить объект на клиенте и создать новый.

mysocket.disconnect() 
mysocket = io() 
Смежные вопросы