diff --git a/lib/manager.ts b/lib/manager.ts index da2d3261..5a705977 100644 --- a/lib/manager.ts +++ b/lib/manager.ts @@ -467,6 +467,10 @@ export class Manager< this.nsps[nsp] = socket; } + if (this._autoConnect) { + socket.connect(); + } + return socket; } diff --git a/test/connection.ts b/test/connection.ts index 9de5adcc..af0215de 100644 --- a/test/connection.ts +++ b/test/connection.ts @@ -814,4 +814,28 @@ describe("connection", () => { }); }); } + + it("should reopen a cached socket", () => { + return wrap((done) => { + const manager = new Manager(BASE_URL, { + autoConnect: true, + }); + const socket = manager.socket("/"); + socket.on("connect", () => { + socket.disconnect(); + }); + + socket.on("disconnect", () => { + const socket2 = manager.socket("/"); + + expect(socket2 === socket).to.be(true); + expect(socket2.active).to.be(true); + + socket2.on("connect", () => { + socket2.disconnect(); + done(); + }); + }); + }); + }); });