【发布时间】:2017-03-08 03:35:00
【问题描述】:
如何使用 Ajax 调用刷新/填充 Node.js 中的 socket.request.session.passport 对象?
我尝试在 Ajax 调用后重新连接套接字,但无济于事。似乎服务器上的这个对象只有在页面加载后才会刷新,这表明 socket.io 客户端库在加载时会读取浏览器中的 cookie,并且不再查看它们。
我正在使用 Express、passport.js 和 socket.io。
【问题讨论】:
-
socket.request来自 socket.io 连接创建时的状态。如果您在客户端杀死 socket.io 对象并创建一个全新的对象,您应该在服务器上获得一个新连接,并在服务器上获得一个新的socket.request。您可能只想看看如何在这里更好地使用护照和socket.io:github.com/jfromaniello/passport.socketio -
是的,它不再查看 cookie,因为 cookie 仅通过 socket.io 连接发送。只要连接保持连接,就不会再次发送 cookie,因为一旦它与原始 HTTP 请求(上面有 cookie)连接,所有未来的通信都只是 webSocket/socket.io 数据包。通过 socket.io 消息进行通信时不发送任何 cookie。
标签: node.js express socket.io passport.js