diff --git a/packages/engine.io-client/lib/transport.ts b/packages/engine.io-client/lib/transport.ts index ba940715..ab72c709 100644 --- a/packages/engine.io-client/lib/transport.ts +++ b/packages/engine.io-client/lib/transport.ts @@ -192,7 +192,7 @@ export abstract class Transport extends Emitter< private _port() { if ( this.opts.port && - ((this.opts.secure && Number(this.opts.port !== 443)) || + ((this.opts.secure && Number(this.opts.port) !== 443) || (!this.opts.secure && Number(this.opts.port) !== 80)) ) { return ":" + this.opts.port; diff --git a/packages/engine.io-client/test/transport.js b/packages/engine.io-client/test/transport.js index 47016fc3..d89057c0 100644 --- a/packages/engine.io-client/test/transport.js +++ b/packages/engine.io-client/test/transport.js @@ -116,6 +116,32 @@ describe("Transport", () => { expect(polling.uri()).to.contain("https://localhost/engine.io?sid=test"); }); + it("should generate an https uri w/o a port (string)", () => { + const polling = new eio.transports.polling({ + path: "/engine.io", + hostname: "localhost", + secure: true, + query: { sid: "test" }, + port: "443", + timestampRequests: false, + }); + expect(polling.uri()).to.contain("https://localhost/engine.io?sid=test"); + }); + + it("should generate an https uri with a port", () => { + const polling = new eio.transports.polling({ + path: "/engine.io", + hostname: "localhost", + secure: true, + query: { sid: "test" }, + port: 8443, + timestampRequests: false, + }); + expect(polling.uri()).to.contain( + "https://localhost:8443/engine.io?sid=test", + ); + }); + it("should generate a timestamped uri", () => { const polling = new eio.transports.polling({ path: "/engine.io",