Skip to content

Commit b7dd891

Browse files
fix: ensure manager.socket() returns an active socket
Related: #1460
1 parent 655dce9 commit b7dd891

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

lib/manager.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,10 @@ export class Manager<
467467
this.nsps[nsp] = socket;
468468
}
469469

470+
if (this._autoConnect) {
471+
socket.connect();
472+
}
473+
470474
return socket;
471475
}
472476

test/connection.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,4 +814,28 @@ describe("connection", () => {
814814
});
815815
});
816816
}
817+
818+
it("should reopen a cached socket", () => {
819+
return wrap((done) => {
820+
const manager = new Manager(BASE_URL, {
821+
autoConnect: true,
822+
});
823+
const socket = manager.socket("/");
824+
socket.on("connect", () => {
825+
socket.disconnect();
826+
});
827+
828+
socket.on("disconnect", () => {
829+
const socket2 = manager.socket("/");
830+
831+
expect(socket2 === socket).to.be(true);
832+
expect(socket2.active).to.be(true);
833+
834+
socket2.on("connect", () => {
835+
socket2.disconnect();
836+
done();
837+
});
838+
});
839+
});
840+
});
817841
});

0 commit comments

Comments
 (0)