我正在尝试为多个套接字连接编写测试,我需要多个会话(同时),因为它们是由服务器端的会话ID识别的......
在下面的示例中, client1 将连接并且握手将通过会话ID传递cookie,因此我可以使用 express-socket.io-session 来获取会话该用户的数据......
我遇到的问题是当我想连接第二个套接字时,通过的握手数据显然与第一个套接字相同。
我不能只发送退出请求并更改用户,因为我正在尝试测试多人游戏功能。
var agent = chai.request.agent(app)
describe("authentication", function () {
it('login as user', function (done) {
agent
.post('/login')
.send({
username: username,
password: password
})
.then(function (res) {
expect(res).to.have.status(200);
expect(res).to.have.cookie('connect.sid');
done()
})
.catch(function (err) {
done(err)
})
});
})
describe("socket tests", function () {
var client1, client2;
it('can connect to socket', function (done) {
client1 = io.connect("http://localhost:3000/", options);
client1.on('connect', () => {
done();
})
});
it('can connect second user to socket', function (done) {
client2 = io.connect("http://localhost:3000/", options);
client2.on('connect', () => {
done();
})
});
})