이것은 프로토콜 통신의 기본에 해당합니다. Android 클라이언트가 트랜잭션을 요청했으며 서버가 트랜잭션을 수행해야합니다. 트랜잭션이 Android 클라이언트 승인에 종속되는 경우 이는 통화 ACK / NAK 통신입니다.
ACK (승인) 및 NAK (음의 승인) 는 상대방에게 요청 결과를 알리는 데 사용됩니다.
당신이 요구하는 것은 클라이언트와 서버 간의 핸드 셰이크 교환 유형이며 , 기본 ACK / NAK 교환으로 수행 할 수 있습니다.
다음은 양방향 승인으로 파일을 업로드하는 Android의 예입니다.
Android -> upload files -> Server
Android <- ACK #id <- Server
Android -> ACK #id -> Server
위의 예 #id
에서 거래에 대한 고유 식별자를 추가했습니다 . 서버는 파일을 수신하고 트랜잭션 레코드를 작성한 후 응답으로 다시 Android로 보내야합니다. 그런 다음 Android는 해당 거래에 대한 승인 (또는 거부에 대한 NAK)을 따라야합니다.
핸드 셰이 킹 중 Android 연결 끊기의 예는 다음과 같습니다.
Android -> upload files -> Server
Android <- ACK #id <- Server
/** no ACK response **/
위의 예제에서 서버는 업로드 된 파일을 수락하고 #id
ACK 응답을 다시 Android로 보냈지 만 Android는 ACK로 응답하지 않습니다. Android 기기가 핸드 쉐이킹을 완료하지 못했습니다. 서버가이를 처리하는 방법을 결정하는 것은 사용자의 책임입니다. 트랜잭션을 삭제하고 트랜잭션을 유지 한 후 나중에 Android 기기가 돌아 오기를 기다리거나 트랜잭션을 완료하십시오.
서버는 장치가 ACK로 응답하지 않았기 때문에 가정 할 수 있습니다. Android 기기가 내부 상태를 업데이트하지 않아 업로드에 성공했음을 나타냅니다. 트랜잭션을 버리고 나중에 장치가 트랜잭션을 반복하도록 허용합니다.