Search in sources :

Example 1 with ZeroMasker

use of org.eclipse.jetty.websocket.client.masks.ZeroMasker in project jetty.project by eclipse.

the class SlowServerTest method testServerSlowToRead.

@Test
@Slow
public void testServerSlowToRead() throws Exception {
    JettyTrackingSocket tsocket = new JettyTrackingSocket();
    client.setMasker(new ZeroMasker());
    client.setMaxIdleTimeout(60000);
    URI wsUri = server.getWsUri();
    Future<Session> future = client.connect(tsocket, wsUri);
    IBlockheadServerConnection sconnection = server.accept();
    sconnection.setSoTimeout(60000);
    sconnection.upgrade();
    // Confirm connected
    future.get(30, TimeUnit.SECONDS);
    tsocket.waitForConnected(30, TimeUnit.SECONDS);
    int messageCount = 10;
    // Setup slow server read thread
    ServerReadThread reader = new ServerReadThread(sconnection, messageCount);
    // slow it down
    reader.setSlowness(100);
    reader.start();
    // Have client write as quickly as it can.
    ClientWriteThread writer = new ClientWriteThread(tsocket.getSession());
    writer.setMessageCount(messageCount);
    writer.setMessage("Hello");
    // disable slowness
    writer.setSlowness(-1);
    writer.start();
    writer.join();
    // Verify receive
    reader.waitForExpectedMessageCount(10, TimeUnit.SECONDS);
    Assert.assertThat("Frame Receive Count", reader.getFrameCount(), is(messageCount));
    // Close
    tsocket.getSession().close(StatusCode.NORMAL, "Done");
    Assert.assertTrue("Client Socket Closed", tsocket.closeLatch.await(10, TimeUnit.SECONDS));
    tsocket.assertCloseCode(StatusCode.NORMAL);
    // stop reading
    reader.cancel();
}
Also used : IBlockheadServerConnection(org.eclipse.jetty.websocket.common.test.IBlockheadServerConnection) ZeroMasker(org.eclipse.jetty.websocket.client.masks.ZeroMasker) URI(java.net.URI) Session(org.eclipse.jetty.websocket.api.Session) Test(org.junit.Test) Slow(org.eclipse.jetty.toolchain.test.annotation.Slow)

Example 2 with ZeroMasker

use of org.eclipse.jetty.websocket.client.masks.ZeroMasker in project jetty.project by eclipse.

the class SlowServerTest method testServerSlowToSend.

@Test
@Slow
public void testServerSlowToSend() throws Exception {
    JettyTrackingSocket clientSocket = new JettyTrackingSocket();
    client.setMasker(new ZeroMasker());
    client.setMaxIdleTimeout(60000);
    URI wsUri = server.getWsUri();
    Future<Session> clientConnectFuture = client.connect(clientSocket, wsUri);
    IBlockheadServerConnection serverConn = server.accept();
    serverConn.setSoTimeout(60000);
    serverConn.upgrade();
    // Confirm connected
    clientConnectFuture.get(30, TimeUnit.SECONDS);
    clientSocket.waitForConnected(30, TimeUnit.SECONDS);
    // Have server write slowly.
    int messageCount = 1000;
    ServerWriteThread writer = new ServerWriteThread(serverConn);
    writer.setMessageCount(messageCount);
    writer.setMessage("Hello");
    writer.setSlowness(10);
    writer.start();
    writer.join();
    // Verify receive
    Assert.assertThat("Message Receive Count", clientSocket.messageQueue.size(), is(messageCount));
    // Close
    serverConn.close(StatusCode.NORMAL);
    Assert.assertTrue("Client Socket Closed", clientSocket.closeLatch.await(10, TimeUnit.SECONDS));
    clientSocket.assertCloseCode(StatusCode.NORMAL);
}
Also used : IBlockheadServerConnection(org.eclipse.jetty.websocket.common.test.IBlockheadServerConnection) ZeroMasker(org.eclipse.jetty.websocket.client.masks.ZeroMasker) URI(java.net.URI) Session(org.eclipse.jetty.websocket.api.Session) Test(org.junit.Test) Slow(org.eclipse.jetty.toolchain.test.annotation.Slow)

Aggregations

URI (java.net.URI)2 Slow (org.eclipse.jetty.toolchain.test.annotation.Slow)2 Session (org.eclipse.jetty.websocket.api.Session)2 ZeroMasker (org.eclipse.jetty.websocket.client.masks.ZeroMasker)2 IBlockheadServerConnection (org.eclipse.jetty.websocket.common.test.IBlockheadServerConnection)2 Test (org.junit.Test)2