diff --git a/src/main/java/com/github/nkzawa/engineio/client/Socket.java b/src/main/java/com/github/nkzawa/engineio/client/Socket.java index a70e94f..d679bea 100644 --- a/src/main/java/com/github/nkzawa/engineio/client/Socket.java +++ b/src/main/java/com/github/nkzawa/engineio/client/Socket.java @@ -103,7 +103,7 @@ public class Socket extends Emitter { private boolean timestampRequests; private boolean upgrading; private boolean rememberUpgrade; - private int port; + /*package*/ int port; private int policyPort; private int prevBufferLen; private long pingInterval; @@ -176,6 +176,9 @@ public class Socket extends Emitter { } if (pieces.length > 1) { opts.port = Integer.parseInt(pieces[pieces.length - 1]); + } else if (opts.port == -1) { + // if no port is specified manually, use the protocol default + opts.port = this.secure ? 443 : 80; } } } @@ -808,6 +811,8 @@ public class Socket extends Emitter { filteredUpgrades.add(upgrade); } } + + return filteredUpgrades; } diff --git a/src/main/java/com/github/nkzawa/engineio/client/Transport.java b/src/main/java/com/github/nkzawa/engineio/client/Transport.java index d47347c..8277075 100644 --- a/src/main/java/com/github/nkzawa/engineio/client/Transport.java +++ b/src/main/java/com/github/nkzawa/engineio/client/Transport.java @@ -140,8 +140,8 @@ public abstract class Transport extends Emitter { public String timestampParam; public boolean secure; public boolean timestampRequests; - public int port; - public int policyPort; + public int port = -1; + public int policyPort = -1; public Map query; public SSLContext sslContext; protected Socket socket; diff --git a/src/test/java/com/github/nkzawa/engineio/client/SocketTest.java b/src/test/java/com/github/nkzawa/engineio/client/SocketTest.java index f231dae..0080b08 100644 --- a/src/test/java/com/github/nkzawa/engineio/client/SocketTest.java +++ b/src/test/java/com/github/nkzawa/engineio/client/SocketTest.java @@ -1,6 +1,5 @@ package com.github.nkzawa.engineio.client; -import com.github.nkzawa.emitter.Emitter; import com.github.nkzawa.engineio.client.transports.Polling; import com.github.nkzawa.engineio.client.transports.WebSocket; import org.junit.Test; @@ -10,10 +9,6 @@ import org.junit.runners.JUnit4; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; -import java.util.Timer; -import java.util.TimerTask; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @@ -34,41 +29,23 @@ public class SocketTest { assertThat(socket.filterUpgrades(upgrades), is(expected)); } - /** - * should emit close on incorrect connection. - * - * @throws URISyntaxException - * @throws InterruptedException - */ - @Test - public void socketClosing() throws URISyntaxException, InterruptedException { - final BlockingQueue values = new LinkedBlockingQueue(); - - Socket socket = new Socket("ws://0.0.0.0:8080"); - final boolean[] closed = {false}; - - socket.once(Socket.EVENT_ERROR, new Emitter.Listener() { - @Override - public void call(Object... args) { - Timer timer = new Timer(); - timer.schedule(new TimerTask() { - @Override - public void run() { - values.offer(closed[0]); - } - }, 20); - } - }); - - socket.on(Socket.EVENT_CLOSE, new Emitter.Listener() { - @Override - public void call(Object... args) { - closed[0] = true; - } - }); - socket.open(); - - assertThat((Boolean)values.take(), is(true)); + public void properlyParseHttpUriWithoutPort() throws URISyntaxException { + Socket client = new Socket("http://localhost"); + assertThat(client.port, is(80)); } + public void properlyParseHttpsUriWithoutPort() throws URISyntaxException { + Socket client = new Socket("http://localhost"); + assertThat(client.port, is(443)); + } + + public void properlyParseWssUriWithoutPort() throws URISyntaxException { + Socket client = new Socket("http://localhost"); + assertThat(client.port, is(443)); + } + + public void properlyParseWssUriWithPort() throws URISyntaxException { + Socket client = new Socket("http://localhost:2020"); + assertThat(client.port, is(2020)); + } }