diff --git a/web3.js/src/connection.js b/web3.js/src/connection.js index 210d6dce72..840aa4b1e1 100644 --- a/web3.js/src/connection.js +++ b/web3.js/src/connection.js @@ -1462,6 +1462,12 @@ export class Connection { url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:'; url.host = ''; + // Only shift the port by +1 as a convention for ws(s) only if given endpoint + // is explictly specifying the endpoint port (HTTP-based RPC), assuming + // we're directly trying to connect to solana-validator's ws listening port. + // When the endpoint omits the port, we're connecting to the protocol + // default ports: http(80) or https(443) and it's assumed we're behind a reverse + // proxy which manages WebSocket upgrade and backend port redirection. if (url.port !== null) { url.port = String(Number(url.port) + 1); }