如何验证套接字.没有底层用户代理的IO连接,以保持cookie并持久化会话



我正在尝试测试应用程序的套接字。使用护照的IO。验证套接字连接的Socketio

<>之前var socket = require('socket.io-client')('http://localhost:' + app.PORT);之前

这个不能工作,因为没有附带的cookie。

即使我从持久化超级代理会话中获得cookie

<>之前var饼干;Var agent = request.agent(app);agent.post .send("/登录")("凭证")。End (function(err, res) {Cookie = res.req._headers.cookie;});之前

我在哪里/如何使用它

我发现已经有相当多的socket请求了。Io-client添加cookie支持

http://github.com/LearnBoost/socket.io-client/issues/450
http://github.com/LearnBoost/socket.io-client/pull/439
http://github.com/LearnBoost/socket.io-client/issues/344

但我看他们哪儿也去不了。

是否有其他的解决方案,使用持久的cookie会话与套接字,而测试?

Cookie数据可以通过querystring

传递<>之前agent.post .send("/登录")("凭证")。End (function(err, res) {Cookie = res.req._headers.cookie。替换(/=/g, ' % 3 d ');//转义"="});Socket = require(' Socket .io-client')('http://localhost' + '/?Cookie =' + Cookie ';之前

它在服务器套接字

中可用<>之前io。set('authorization', function(handshakeData, callback){handshakeData._query.cookie;});之前

,所以它可以用来执行授权。因为我用的是护照。Socketio,它可以很好地使用一个小更改来检查这个查询字符串而不是头。

最新更新