2

최근 Apple Push Notification 서버에 알림을 보내기 위해 자바 코드를 작성했습니다. 내가 소켓을 만들고 네트워크에서 연결을 끊으면 문제가 발생합니다. 나는 온라인 기사의 주위에 반송 한 대부분이 방법에 의존 제안 :자바 소켓 - 입력 스트림없이 네트워크 연결 해제하기

socket.setKeepAlive(false); 
socket.setSoTimeout(1000); 

구체적으로 "에 setSoTimeout"방법을. 그러나 setSoTimeout은 InputStream에서 읽을 때만 예외를 throw합니다. 하지만 Apple Push Notification 서버는 InputStream에 어떤 데이터도 두지 않으므로 아무 것도 읽을 수 없습니다. 누구든지 소켓 InputStream을 사용하지 않고 네트워크 연결을 해제하는 방법에 대한 제안 사항이 있습니까?

+2

참조 http://stackoverflow.com/questions/22720/configure-a-java-socket-to-fail-fast-on-disconnect 및 http://stackoverflow.com/questions/2028620/java-sockets- 연결 끊김. –

답변

0

소켓을 쓰거나 읽으려고 할 때 소켓의 연결이 끊어 졌음을 확실하게 감지 할 수 있습니다. 쓰기는 종종 실패를 감지하는 데 시간이 걸리기 때문에 읽기가 더 좋습니다.

서버는 사용자가 읽을 수 있도록 아무 것도 쓸 필요가 없습니다. 당신이 쓰지 않는 서버를 가지고 있다면 아무것도 읽지 않거나 실패를 감지 할 것이다.

0

빠른 정확도 : 향상된 알림 형식을 사용 중이며 오류가 발생하는 경우 APNS에서 InputStream에 대한 데이터를 반환합니다. 그러므로 당신은 당신의 InputStream을 무시하지 말아야합니다. ...

개인 학습 프로젝트로하지 않는 한, 당신은 모든 커뮤니케이션 세부 사항을 다루는 existing APNS-specific Java libraries을보고 싶을 것입니다. APNS를 사용하여 안정적으로 통신하는 것은 처음에 보는 것보다 훨씬 어렵습니다. 특히 모호하거나 불명확 한 다양한 세부 정보를 포함하는 오류 관리 부분에 이르면 더욱 그렇습니다.