Socket.io
이 문제가 또 저를 붙잡았습니다.
예전에 자바스크립트로 코딩할 때, 알 수 없는 이유로 클라이언트 측에서
엄청나게 많은 reconnect를 요구하는 바람에 노드 서버가 아무것도 못하고
뻗어버리는 현상이 있었는데요
그때는 자바스크립트 측에 강제로 횟수 제한을 두어서 계속 연결 시도를 못하게 했었습니다.
이번에는 클라이언트가 자바인 경우인데요.
많은 Reconnect를 요구하는 것이 아니라 제대로 연결이 안됩니다.
게다가 될때도 있고 안될때도 있어서 매우 혼란스러운 상황이었습니다.
일단 로그는 다음과 같습니다.
서버측 : client not handshaken client should reconnect
클라이언트측 : IOCallback() 의 onError 작동
해결은 다음과 같이 했습니다.
// 사용 : https://github.com/Gottox/socket.io-java-client static public int socketCnt=0; // 사용될 전역변수입니다. static Thread tRecv; public static void initialize(){ tRecv = new Thread() { public void run() { try { socket = new SocketIO("http://***:***/"); IOCallback IOC=new IOCallback() { @Override ... @Override public void onError(SocketIOException socketIOException) { System.out.println("an Error occured"); //그러니까 요지는, 에러가 나면 다시 연결을 시도 한다는 겁니다. //횟수 제한을 두도록 했습니다. try { if(socketCnt<10){ socket = new SocketIO("http://***:***/"); socket.connect(this); socketCnt++; } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } socketIOException.printStackTrace(); } @Override ... socket.connect(IOC); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }; tRecv.start(); try { tRecv.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 일단은 해결 된 듯 보이지만 시간이 지나봐야 알 것 같네요ㅋㅋ