@Override public void run() throws IOException { while (true) { waitForMessage(); if (isClosed()) { if (reconnectOnClosePause >= 0) { pause(reconnectOnClosePause); } else { break; } } } } });
@Test public void echoTest() throws IOException, URISyntaxException, InterruptedException { handler = new WebSocketHandler() { @Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } }; AtomicReference<String> messageHolder = new AtomicReference<>(); SimpleWebSocketClient client = new SimpleWebSocketClient("ws://localhost:" + getPort()) { @Override public void onMessage(Message message) { messageHolder.set(message.asString()); } }; client.send("foo bar"); client.waitForMessage(); Assert.assertEquals("foo bar", messageHolder.get()); }
try { client.send(data); client.waitForMessage(); } catch (IOException e) { e.printStackTrace();
@Test public void limitTest() throws IOException, URISyntaxException, InterruptedException { handler = new WebSocketHandler() { @Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } }; SimpleWebSocketClient client = new SimpleWebSocketClient("ws://localhost:" + getPort()) { @Override public void onMessage(Message message) { throw new IllegalArgumentException(); } }; byte[] data; data = new byte[1024 * 1024]; ThreadLocalRandom.current().nextBytes(data); try { client.send(data); client.waitForMessage(); Assert.assertTrue(false); } catch (SocketException e) { Assert.assertEquals("Connection reset", e.getMessage()); } }
ThreadLocalRandom.current().nextBytes(data); client.send(data); client.waitForMessage(); Assert.assertEquals(MD5.create().update(data).asString(), md5Holder.get());
ThreadLocalRandom.current().nextBytes(data); client.send(data); client.waitForMessage(); Assert.assertEquals(MD5.create().update(data).asString(), md5Holder.get()); ThreadLocalRandom.current().nextBytes(data); client.send(data); client.waitForMessage(); Assert.assertEquals(MD5.create().update(data).asString(), md5Holder.get()); ThreadLocalRandom.current().nextBytes(data); client.send(data); client.waitForMessage(); Assert.assertEquals(MD5.create().update(data).asString(), md5Holder.get());
ThreadLocalRandom.current().nextBytes(data); client.send(data); client.waitForMessage(); Assert.assertEquals(MD5.create().update(data).asString(), md5Holder.get());
ThreadLocalRandom.current().nextBytes(data); client.send(data); client.waitForMessage(); Assert.assertEquals(MD5.create().update(data).asString(), md5Holder.get());
@Test public void testFrames() throws IOException, URISyntaxException, InterruptedException { handler = new WebSocketHandler() { @Override public void onMessage(WebSocketListener listener, Message message) { listener.sendMessage(message); } }; AtomicReference<String> messageHolder = new AtomicReference<>(); SimpleWebSocketClient client = new SimpleWebSocketClient("ws://localhost:" + getPort()) { @Override public void onMessage(Message message) { messageHolder.set(message.asString()); } }; Message message = new Message().append("foo").append(" ").append("bar"); client.send(message); client.waitForMessage(); Assert.assertEquals("foo bar", messageHolder.get()); }
client.send("close"); try { client.waitForMessage(); Assert.assertTrue(client.isClosed()); } catch (SocketException e) {