2013-06-26 2 views
0

서버 측의 Java 클래스를 node.js에 연결하고 일부 이벤트를 내보내려면 socket.io-java-client를 사용하고 있습니다.socket.emit가 완료되면 소켓 연결을 끊는 방법

나는 항상 소켓 스레드를 실행하고 싶지 않아 서버에서 실행하고 있기 때문에.

방출이 끝나면 소켓을 분리하고 싶습니다.

나는
SocketIO socket=new SocketIO("http://IP:9001"); 
socket.emit("EVENT", "data"); 
socket.disconnect(); 

을 시도했지만 우리가 메시지를 보낸에도 전에 소켓을 닫기 때문에이 실패합니다.

방출 성공을위한 처리기가 있습니까? 방출이 성공한 후에 어떻게 소켓을 닫을 수 있습니까?

답변

0

서버에 메시지를 보내면 서버의 연결이 끊어 질 수 있습니다. 특정 메시지를 수신하면 클라이언트 소켓을 단절시킬 수 있습니다.
또는 서버가 응답을 추가로 보낼 수 있으며 클라이언트가이 응답을 받으면 자동으로 닫을 수 있습니다. 그러나 서버는 자신을 폐쇄하지 않은 유휴 클라이언트를 종료하기 위해 자체 생성 제한 시간을 확보해야합니다.
나는이 작업을 서버 측에서 수행하고 클라이언트 측에서 이러한 결정을 신뢰하지 않는 것이 좋습니다.

클라이언트가 시간 초과 후 추가로 수행 할 수 있습니다.
Socket.IO를 사용하여 하나의 메시지를 보내고 메시지를 보낸 후에 닫는 경우 핸드 셰이 킹 프로세스에 따른 오버 헤드가 있으므로 Socket.IO를 사용할 필요가 없으며 순서대로 HTTP 요청 만 사용하는 것이 좋습니다 단일 메시지를 서버로 보냅니다.

관련 문제