public void echoTester(String path) throws Exception {
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
ClientEndpointConfig clientEndpointConfig =
ClientEndpointConfig.Builder.create().build();
Session wsSession = wsContainer.connectToServer(
TesterProgrammaticEndpoint.class,
clientEndpointConfig,
new URI("ws://localhost:" + getPort() + path));
CountDownLatch latch =
new CountDownLatch(1);
BasicText handler = new BasicText(latch);
wsSession.addMessageHandler(handler);
wsSession.getBasicRemote().sendText("Hello");
boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
Assert.assertTrue(latchResult);
Queue<String> messages = handler.getMessages();
Assert.assertEquals(1, messages.size());
for (String message : messages) {
Assert.assertEquals("Hello", message);
}
wsSession.close();
}
java类javax.websocket.ClientEndpointConfig的实例源码
TestWebSocketFrameClient.java 文件源码
项目:tomcat7
阅读 41
收藏 0
点赞 0
评论 0
SessionSecureTestCase.java 文件源码
项目:Mastering-Java-EE-Development-with-WildFly
阅读 30
收藏 0
点赞 0
评论 0
private void connect() throws Exception {
while (sessionServer != null && !sessionServer.isOpen()) {
break;
}
SSLContext context = createSSLContext();
SecureSocketClient endpoint = new SecureSocketClient();
Configurator configurator = new Configurator() {
@Override
public void beforeRequest(Map<String, List<String>> headers) {
headers.put(SEC_WEB_SOCKET_PROTOCOL_STRING, singletonList("configured-proto"));
}
};
ClientEndpointConfig clientEndpointConfig = create().configurator(configurator)
.preferredSubprotocols(asList(new String[] { "foo", "bar", "configured-proto" })).build();
clientEndpointConfig.getUserProperties().put(SSL_CONTEXT, context);
final WebSocketContainer serverContainer = getWebSocketContainer();
URI uri = new URI("wss://127.0.0.1:8443/secure-test/session");
serverContainer.connectToServer(endpoint, clientEndpointConfig, uri);
awake();
}
CloudControllerClientImpl.java 文件源码
项目:cf-java-client-sap
阅读 34
收藏 0
点赞 0
评论 0
private StreamingLogToken streamLoggregatorLogs(String appName, ApplicationLogListener listener, boolean recent) {
ClientEndpointConfig.Configurator configurator = new ClientEndpointConfig.Configurator() {
@Override
public void beforeRequest(Map<String, List<String>> headers) {
String authorizationHeader = oauthClient.getAuthorizationHeader();
if (authorizationHeader != null) {
headers.put(AUTHORIZATION_HEADER_KEY, Arrays.asList(authorizationHeader));
}
}
};
String endpoint = getInfo().getLoggregatorEndpoint();
String mode = recent ? "dump" : "tail";
UUID appId = getAppId(appName);
return loggregatorClient.connectToLoggregator(endpoint, mode, appId, listener, configurator);
}
TestWsWebSocketContainer.java 文件源码
项目:tomcat7
阅读 47
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointInvalidScheme() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ftp://" + getHostName() + ":" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
}
WebsocketClient.java 文件源码
项目:lams
阅读 31
收藏 0
点赞 0
评论 0
public WebsocketClient(String uri, final String sessionID, MessageHandler.Whole<String> messageHandler)
throws IOException {
// add session ID so the request gets through LAMS security
Builder configBuilder = ClientEndpointConfig.Builder.create();
configBuilder.configurator(new Configurator() {
@Override
public void beforeRequest(Map<String, List<String>> headers) {
headers.put("Cookie", Arrays.asList("JSESSIONID=" + sessionID));
}
});
ClientEndpointConfig clientConfig = configBuilder.build();
this.websocketEndpoint = new WebsocketEndpoint(messageHandler);
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
try {
container.connectToServer(websocketEndpoint, clientConfig, new URI(uri));
} catch (DeploymentException | URISyntaxException e) {
throw new IOException("Error while connecting to websocket server", e);
}
}
ChatServerTest.java 文件源码
项目:websocket-chat
阅读 29
收藏 0
点赞 0
评论 0
@Test
public void newJoineeGetsWelcomeMsg() throws DeploymentException, IOException, InterruptedException {
controlLatch = new CountDownLatch(2);
ChatClient newJoinee = new ChatClient();
String newJoineeName = "abhishek";
String endpointURL = BASE_SERVER_URL + newJoineeName + "/";
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer(newJoinee,
ClientEndpointConfig.Builder.create().build(),
URI.create(endpointURL));
assertTrue(controlLatch.await(5, TimeUnit.SECONDS));
String expectedWelcomeMessage = "Welcome " + newJoineeName;
assertTrue(newJoinee.getResponse().contains(expectedWelcomeMessage));
newJoinee.closeConnection();
}
LogEventHandler.java 文件源码
项目:flow-platform
阅读 38
收藏 0
点赞 0
评论 0
private void initWebSocketSession(String url, int wsConnectionTimeout) throws Exception {
CountDownLatch wsLatch = new CountDownLatch(1);
ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();
ClientManager client = ClientManager.createClient();
client.connectToServer(new Endpoint() {
@Override
public void onOpen(Session session, EndpointConfig endpointConfig) {
wsSession = session;
wsLatch.countDown();
}
}, cec, new URI(url));
if (!wsLatch.await(wsConnectionTimeout, TimeUnit.SECONDS)) {
throw new TimeoutException("Web socket connection timeout");
}
}
TestWebSocketFrameClient.java 文件源码
项目:apache-tomcat-7.0.73-with-comment
阅读 36
收藏 0
点赞 0
评论 0
public void echoTester(String path) throws Exception {
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
ClientEndpointConfig clientEndpointConfig =
ClientEndpointConfig.Builder.create().build();
Session wsSession = wsContainer.connectToServer(
TesterProgrammaticEndpoint.class,
clientEndpointConfig,
new URI("ws://localhost:" + getPort() + path));
CountDownLatch latch =
new CountDownLatch(1);
BasicText handler = new BasicText(latch);
wsSession.addMessageHandler(handler);
wsSession.getBasicRemote().sendText("Hello");
boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
Assert.assertTrue(latchResult);
Queue<String> messages = handler.getMessages();
Assert.assertEquals(1, messages.size());
for (String message : messages) {
Assert.assertEquals("Hello", message);
}
wsSession.close();
}
TestWsWebSocketContainer.java 文件源码
项目:apache-tomcat-7.0.73-with-comment
阅读 28
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointInvalidScheme() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ftp://" + getHostName() + ":" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
}
EndpointConnectionManager.java 文件源码
项目:spring4-understanding
阅读 26
收藏 0
点赞 0
评论 0
@Override
protected void openConnection() {
this.taskExecutor.execute(new Runnable() {
@Override
public void run() {
try {
logger.info("Connecting to WebSocket at " + getUri());
Endpoint endpointToUse = (endpoint != null) ? endpoint : endpointProvider.getHandler();
ClientEndpointConfig endpointConfig = configBuilder.build();
session = getWebSocketContainer().connectToServer(endpointToUse, endpointConfig, getUri());
logger.info("Successfully connected");
}
catch (Throwable ex) {
logger.error("Failed to connect", ex);
}
}
});
}
OtpWebSocketTest.java 文件源码
项目:gameboot
阅读 26
收藏 0
点赞 0
评论 0
private void createClearChannel() throws Exception {
ClientEndpointConfig config = ClientEndpointConfig.Builder.create().build();
config.getUserProperties().put(WsWebSocketContainer.SSL_CONTEXT_PROPERTY, sslContext);
clearChannel = ContainerProvider.getWebSocketContainer().connectToServer(endpoint,
config,
new URI(createClearUriString()));
assertTrue(clearChannel.isOpen());
CountDownLatch cdl = new CountDownLatch(1);
endpoint.setResponseLatch(cdl);
cdl.await(1, TimeUnit.SECONDS);
assertNotNull(endpoint.getSystemId());
assertEquals(clearChannel, endpoint.getSession());
}
WebSocketClientConnection.java 文件源码
项目:gameon-mediator
阅读 34
收藏 0
点赞 0
评论 0
@Override
public void connect() throws DeploymentException, IOException {
ConnectionDetails details = info.getConnectionDetails();
Log.log(Level.FINE, drain, "Creating websocket to {0}", details.getTarget());
URI uriServerEP = URI.create(details.getTarget());
authConfigurator = new GameOnHeaderAuthConfigurator(details.getToken(), uriServerEP.getRawPath());
final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create()
.decoders(Arrays.asList(RoutedMessageDecoder.class)).encoders(Arrays.asList(RoutedMessageEncoder.class))
.configurator(authConfigurator)
.build();
WebSocketContainer c = ContainerProvider.getWebSocketContainer();
this.session = c.connectToServer(this, cec, uriServerEP);
}
SimpleWebSocketClient.java 文件源码
项目:simple-websocket-client
阅读 28
收藏 0
点赞 0
评论 0
/**
* Establishes the connection to the given WebSocket Server Address.
*/
public void connect() {
readyState = ReadyState.CONNECTING;
try {
if (webSocketHandler == null) {
webSocketHandler = new WebSocketHandlerAdapter();
}
container.connectToServer(new SimpleWebSocketClientEndpoint(), ClientEndpointConfig.Builder.create().build(), websocketURI);
} catch (Exception e) {
readyState = ReadyState.CLOSED;
// throws DeploymentException, IOException
throw new RuntimeException("could not establish connection");
}
}
TestWsWebSocketContainer.java 文件源码
项目:class-guard
阅读 25
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointInvalidScheme() throws Exception {
Tomcat tomcat = getTomcatInstance();
// Must have a real docBase - just use temp
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(new ApplicationListener(
TesterEchoServer.Config.class.getName(), false));
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ftp://localhost:" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
}
TestWsWebSocketContainer.java 文件源码
项目:class-guard
阅读 31
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointNoHost() throws Exception {
Tomcat tomcat = getTomcatInstance();
// Must have a real docBase - just use temp
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(new ApplicationListener(
TesterEchoServer.Config.class.getName(), false));
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ws://" + TesterEchoServer.Config.PATH_ASYNC));
}
TestClient.java 文件源码
项目:JavaIncrementalParser
阅读 23
收藏 0
点赞 0
评论 0
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet TestServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet TestServlet at " + request.getContextPath() + "</h1>");
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
String uri = "ws://localhost:8080" + request.getContextPath() + "/websocket";
out.println("Connecting to " + uri);
container.connectToServer(MyClient.class,
ClientEndpointConfig.Builder.create().configurator(new MyConfigurator()).build(),
URI.create(uri));
out.println("<br><br>Look in server.log for message exchange between client/server and headers from configurator.");
out.println("</body>");
out.println("</html>");
} catch (DeploymentException ex) {
Logger.getLogger(TestClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
TestWsWebSocketContainer.java 文件源码
项目:apache-tomcat-7.0.57
阅读 31
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointInvalidScheme() throws Exception {
Tomcat tomcat = getTomcatInstance();
// Must have a real docBase - just use temp
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ftp://localhost:" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
}
TestWsWebSocketContainer.java 文件源码
项目:apache-tomcat-7.0.57
阅读 45
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointNoHost() throws Exception {
Tomcat tomcat = getTomcatInstance();
// Must have a real docBase - just use temp
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ws://" + TesterEchoServer.Config.PATH_ASYNC));
}
TestWsWebSocketContainer.java 文件源码
项目:apache-tomcat-7.0.57
阅读 29
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointInvalidScheme() throws Exception {
Tomcat tomcat = getTomcatInstance();
// Must have a real docBase - just use temp
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ftp://localhost:" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
}
TestWsWebSocketContainer.java 文件源码
项目:apache-tomcat-7.0.57
阅读 45
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointNoHost() throws Exception {
Tomcat tomcat = getTomcatInstance();
// Must have a real docBase - just use temp
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ws://" + TesterEchoServer.Config.PATH_ASYNC));
}
DaemonMessagesClientEndpoint.java 文件源码
项目:pentaho-kettle
阅读 27
收藏 0
点赞 0
评论 0
public DaemonMessagesClientEndpoint( String host, String port, boolean ssl,
MessageEventService messageEventService ) throws KettleException {
try {
setAuthProperties();
String url = String.format( URL_TEMPLATE, ( ssl ? PRFX_WS_SSL : PRFX_WS ), host, port );
URI uri = new URI( url );
this.messageEventService = messageEventService;
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer( this, ClientEndpointConfig.Builder.create()
.encoders( Collections.singletonList( MessageEncoder.class ) )
.decoders( Collections.singletonList( MessageDecoder.class ) )
.configurator( new SessionConfigurator( uri, keytab, principal ) )
.build(), uri );
} catch ( Exception e ) {
throw new KettleException( e );
}
}
LoggregatorClient.java 文件源码
项目:cf-java-client-sap
阅读 29
收藏 0
点赞 0
评论 0
private ClientEndpointConfig buildClientConfig(ClientEndpointConfig.Configurator configurator) {
ClientEndpointConfig config = ClientEndpointConfig.Builder.create().configurator(configurator).build();
if (trustSelfSignedCerts) {
SSLContext sslContext = buildSslContext();
Map<String, Object> userProperties = config.getUserProperties();
userProperties.put(WsWebSocketContainer.SSL_CONTEXT_PROPERTY, sslContext);
}
return config;
}
TestWsPingPongMessages.java 文件源码
项目:tomcat7
阅读 31
收藏 0
点赞 0
评论 0
@Test
public void testPingPongMessages() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
Tomcat.addServlet(ctx, "default", new DefaultServlet());
ctx.addServletMapping("/", "default");
tomcat.start();
WebSocketContainer wsContainer = ContainerProvider
.getWebSocketContainer();
tomcat.start();
Session wsSession = wsContainer.connectToServer(
TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder
.create().build(), new URI("ws://localhost:"
+ getPort() + TesterEchoServer.Config.PATH_ASYNC));
CountDownLatch latch = new CountDownLatch(1);
TesterEndpoint tep = (TesterEndpoint) wsSession.getUserProperties()
.get("endpoint");
tep.setLatch(latch);
PongMessageHandler handler = new PongMessageHandler(latch);
wsSession.addMessageHandler(handler);
wsSession.getBasicRemote().sendPing(applicationData);
boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
Assert.assertTrue(latchResult);
Assert.assertArrayEquals(applicationData.array(),
(handler.getMessages().peek()).getApplicationData().array());
}
TestWsWebSocketContainer.java 文件源码
项目:tomcat7
阅读 37
收藏 0
点赞 0
评论 0
@Test
public void testConnectToServerEndpoint() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
Tomcat.addServlet(ctx, "default", new DefaultServlet());
ctx.addServletMapping("/", "default");
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
// Set this artificially small to trigger
// https://bz.apache.org/bugzilla/show_bug.cgi?id=57054
wsContainer.setDefaultMaxBinaryMessageBufferSize(64);
Session wsSession = wsContainer.connectToServer(
TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ws://" + getHostName() + ":" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
CountDownLatch latch = new CountDownLatch(1);
BasicText handler = new BasicText(latch);
wsSession.addMessageHandler(handler);
wsSession.getBasicRemote().sendText(MESSAGE_STRING_1);
boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
Assert.assertTrue(latchResult);
Queue<String> messages = handler.getMessages();
Assert.assertEquals(1, messages.size());
Assert.assertEquals(MESSAGE_STRING_1, messages.peek());
((WsWebSocketContainer) wsContainer).destroy();
}
TestWsWebSocketContainer.java 文件源码
项目:tomcat7
阅读 42
收藏 0
点赞 0
评论 0
@Test(expected=javax.websocket.DeploymentException.class)
public void testConnectToServerEndpointNoHost() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ws://" + TesterEchoServer.Config.PATH_ASYNC));
}
TestWsWebSocketContainer.java 文件源码
项目:tomcat7
阅读 27
收藏 0
点赞 0
评论 0
private void doTestPerMessageDefalteClient(String msg, int count) throws Exception {
Tomcat tomcat = getTomcatInstance();
// Must have a real docBase - just use temp
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
Tomcat.addServlet(ctx, "default", new DefaultServlet());
ctx.addServletMapping("/", "default");
tomcat.start();
Extension perMessageDeflate = new WsExtension(PerMessageDeflate.NAME);
List<Extension> extensions = new ArrayList<Extension>(1);
extensions.add(perMessageDeflate);
ClientEndpointConfig clientConfig =
ClientEndpointConfig.Builder.create().extensions(extensions).build();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
Session wsSession = wsContainer.connectToServer(
TesterProgrammaticEndpoint.class,
clientConfig,
new URI("ws://" + getHostName() + ":" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
CountDownLatch latch = new CountDownLatch(count);
BasicText handler = new BasicText(latch, msg);
wsSession.addMessageHandler(handler);
for (int i = 0; i < count; i++) {
wsSession.getBasicRemote().sendText(msg);
}
boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
Assert.assertTrue(latchResult);
((WsWebSocketContainer) wsContainer).destroy();
}
WebSocketClient.java 文件源码
项目:osc-core
阅读 42
收藏 0
点赞 0
评论 0
private ClientEndpointConfig getClientEndpointConfig() {
// initializing custom client end point configurator
this.configurator = new CustomClientEndPointConfigurator(WebSocketClient.this.mgrApi.getHandshakeParameters());
final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().configurator(this.configurator).build();
return cec;
}
ChatServerTest.java 文件源码
项目:websocket-chat
阅读 26
收藏 0
点赞 0
评论 0
@Test
public void sessionAutoClosedAfterMaxIdleTimeoutBreach() throws Exception {
controlLatch = new CountDownLatch(2);
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
ChatClient abhi = new ChatClient();
String chatter = "abhishek";
String endpointURL = BASE_SERVER_URL + chatter + "/";
Session session = container.connectToServer(abhi,
ClientEndpointConfig.Builder.create().build(),
URI.create(endpointURL));
session.setMaxIdleTimeout(maxIdleTime); //set the timeout
String expectedWelcomeMessageForChatter1 = "Welcome " + chatter;
assertTrue(controlLatch.await(5, TimeUnit.SECONDS));
assertTrue(abhi.getResponse().contains(expectedWelcomeMessageForChatter1));
connClosedLatch = new CountDownLatch(1);
assertTrue(connClosedLatch.await(maxIdleTime + 5000, TimeUnit.MILLISECONDS)); // wait 5 seconds more than the timeout
String expectedSessionTimeoutCloseReasonPhrase = "\"Session closed by the container because of the idle timeout.\"";
assertEquals(expectedSessionTimeoutCloseReasonPhrase, abhi.getCloseReason().getReasonPhrase()); //check the exact phrase
//String expectedSessionTimeoutCloseReasonCode = "CLOSED_ABNORMALLY";
//assertEquals(expectedSessionTimeoutCloseReasonCode, abhi.getCloseReason().getCloseCode().toString()); //check the exact code
}
TestWsPingPongMessages.java 文件源码
项目:apache-tomcat-7.0.73-with-comment
阅读 27
收藏 0
点赞 0
评论 0
@Test
public void testPingPongMessages() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
Tomcat.addServlet(ctx, "default", new DefaultServlet());
ctx.addServletMapping("/", "default");
tomcat.start();
WebSocketContainer wsContainer = ContainerProvider
.getWebSocketContainer();
tomcat.start();
Session wsSession = wsContainer.connectToServer(
TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder
.create().build(), new URI("ws://localhost:"
+ getPort() + TesterEchoServer.Config.PATH_ASYNC));
CountDownLatch latch = new CountDownLatch(1);
TesterEndpoint tep = (TesterEndpoint) wsSession.getUserProperties()
.get("endpoint");
tep.setLatch(latch);
PongMessageHandler handler = new PongMessageHandler(latch);
wsSession.addMessageHandler(handler);
wsSession.getBasicRemote().sendPing(applicationData);
boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
Assert.assertTrue(latchResult);
Assert.assertArrayEquals(applicationData.array(),
(handler.getMessages().peek()).getApplicationData().array());
}
TestWsWebSocketContainer.java 文件源码
项目:apache-tomcat-7.0.73-with-comment
阅读 38
收藏 0
点赞 0
评论 0
@Test
public void testConnectToServerEndpoint() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
Tomcat.addServlet(ctx, "default", new DefaultServlet());
ctx.addServletMapping("/", "default");
tomcat.start();
WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
// Set this artificially small to trigger
// https://bz.apache.org/bugzilla/show_bug.cgi?id=57054
wsContainer.setDefaultMaxBinaryMessageBufferSize(64);
Session wsSession = wsContainer.connectToServer(
TesterProgrammaticEndpoint.class,
ClientEndpointConfig.Builder.create().build(),
new URI("ws://" + getHostName() + ":" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
CountDownLatch latch = new CountDownLatch(1);
BasicText handler = new BasicText(latch);
wsSession.addMessageHandler(handler);
wsSession.getBasicRemote().sendText(MESSAGE_STRING_1);
boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
Assert.assertTrue(latchResult);
Queue<String> messages = handler.getMessages();
Assert.assertEquals(1, messages.size());
Assert.assertEquals(MESSAGE_STRING_1, messages.peek());
((WsWebSocketContainer) wsContainer).destroy();
}