Whenever i try to connect to the following web socket url from Java program, it opens the connection and then automatically gets disconnected. Why? Tried with 2 java websocket client libraries and same result in both of them. It only goes upto onOpen() method and gets disconnected without any errors or stacktrace.
Code example used:
Library 1:
package in.amjathsharief.api.meetup.rsvp.websockets;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.logging.Logger;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason;
import javax.websocket.DeploymentException;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import org.glassfish.tyrus.client.ClientManager;
@ClientEndpoint
public class Test {
private Logger logger = Logger.getLogger(this.getClass().getName());
@OnOpen
public void onOpen(Session session) {
}
@OnMessage
public String onMessage(String message, Session session) {
return message;
}
@OnClose
public void onClose(Session session, CloseReason closeReason) {
logger.info(String.format("Session %s close because of %s",
session.getId(), closeReason));
}
public static void main(String[] args) {
ClientManager client = ClientManager.createClient();
try {
client.connectToServer(Test.class, new URI(
} catch (DeploymentException | URISyntaxException e) {
throw new RuntimeException(e);
}
}
}
Library 2:
package in.amjathsharief.api.meetup.rsvp.websockets;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import org.asynchttpclient.AsyncHttpClient;
import org.asynchttpclient.ws.WebSocket;
import org.asynchttpclient.ws.WebSocketTextListener;
import org.asynchttpclient.ws.WebSocketUpgradeHandler;
import static org.asynchttpclient.Dsl.asyncHttpClient;
public class MeetupRsvpWebsocketsApiTest {
public static void main(String[] args) {
AsyncHttpClient asyncHttpClient = asyncHttpClient();
WebSocket websocket = null;
try {
websocket = asyncHttpClient
.execute(
new WebSocketUpgradeHandler.Builder()
.addWebSocketListener(
new WebSocketTextListener() {
public void onClose(
WebSocket arg0) {
// TODO Auto-generated method stub
System.out
.println("on close");
}
public void onError(
Throwable arg0) {
// TODO Auto-generated method stub
System.out
.println("on error");
}
public void onOpen(
WebSocket arg0) {
// TODO Auto-generated method stub
System.out
.println("on open");
}
public void onMessage(
String arg0) {
// TODO Auto-generated method stub
System.out
.println("test");
System.out
.println(arg0);
}
}).build()).get(180, TimeUnit.SECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (Throwable e) {
e.printStackTrace();
}finally {
try {
websocket.close();
asyncHttpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}