WebSocket Client Class Object Information

Q

How to get WebSocket Client object class information? I am using the Java EE 2 SDK distribution package.

✍: FYIcenter.com

A

If you are using the Java EE 2 SDK distribution package, you can follow this tutorial to get WebSocket Client object class information:

1. Write a test Java class annotated as @ClientEndpoint:

@ClientEndpoint
public class WebSocketClassInfo {

2. Create a WebSocketContainer instance from the ContainerProvider class:

      WebSocketContainer c = ContainerProvider.getWebSocketContainer();

3. Create a Session instance by calling connectToServer() on the WebSocketContainer instance with a working WebSocket server URI:

	  URI u = new URI("wss://echo.websocket.org");
	  Session s = c.connectToServer(WebSocketClassInfo.class, u);

4. Print out object class information to see what the implementation classes of the WebSocket API:

	  System.out.println("   URI: "+u.getClass().getName());
	  System.out.println("   Container: "+c.getClass().getName());
	  System.out.println("   Session: "+s.getClass().getName());

Here is the entir test program, WebSocketClassInfo.java:

// Copyright (c) 2016 FYIcenter.com
import java.net.URI;
import javax.websocket.ClientEndpoint;
import javax.websocket.ContainerProvider;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;

@ClientEndpoint
public class WebSocketClassInfo {
   public static void main(String[] args) throws Exception {
      WebSocketContainer c = ContainerProvider.getWebSocketContainer();
	  URI u = new URI("wss://echo.websocket.org");
	  Session s = c.connectToServer(WebSocketClassInfo.class, u);
	  System.out.println("WebSocket class info:");
	  System.out.println("   URI: "+u.getClass().getName());
	  System.out.println("   Container: "+c.getClass().getName());
	  System.out.println("   Session: "+s.getClass().getName());
    }
}

You can compile and run the above example in a command window with Java SE JDK 8 and the tyrus-standalone-client.jar from Java EE 7 SDK:

>\fyicenter\jdk-1.8.0\bin\javac 
   -cp \fyicenter\glassfish4\mq\lib\tyrus-standalone-client.jar 
   WebSocketClassInfo.java

>\fyicenter\jdk-1.8.0\bin\java 
   -cp .;\fyicenter\glassfish4\mq\lib\tyrus-standalone-client.jar 
   WebSocketClassInfo

WebSocket class info:
   URI: java.net.URI
   Container: org.glassfish.tyrus.client.ClientManager
   Session: org.glassfish.tyrus.core.TyrusSession

 

Using WebSocket API in Java Programs

⇒⇒FAQ for WebSocket API

2018-01-16, 792👍, 0💬