2010-04-07 3 views
1

사용자가 iPhone 응용 프로그램을 종료 할 때 진행중인 세션을 무효화하도록 서버에 알려야합니다.iPhone 응용 프로그램이 종료되기 전에 세션 무효화

앱 대리인의 경우 (void)applicationWillTerminate:(UIApplication *)application 메서드로 서버에 요청을 보냅니다. 나는 서버 응답을 기다리는 것이 아니라 단지 요청을 보내고 종료하기를 원한다.

그러나 응용 프로그램을 떠나는 모든 패킷을 볼 수 없습니다. 다른 곳에서 같은 코드가 잘 작동합니다.

세션에 제한된 기간이 있으며 서버가 잠시 후 세션을 무효화합니다. 그러나 응용 프로그램을 종료 할 때 세션을 정중하게 수행하는 것이 좋습니다.

applicationWillTerminate 메소드에서 NSURLConnection을 설정할 수 없다는 것이 정상입니까?

감사합니다.

답변

0

비동기 요청을 보내는 경우 요청이 이루어지기 전에 앱이 종료 될 가능성이 큽니다.

동기식 요청은 일정하지 않은 시간이 걸릴 수 있기 때문에 동기식 요청은 테스트로 사용하지 않는 것이 좋습니다. 앱이 강제 종료되면 iTunes Connect의 충돌 보고서 섹션에 '종료 시간 초과'로 표시됩니다.

+0

[NSURLConnection sendSynchronousRequest : myRequest returningResponse : NULL 오류 : NULL] 실제로 작동했습니다. 그러나 당신의 경고에 따라 내가 그만 두어야할지 모르겠다. 어쩌면 서버가 결국 세션을 처리해야합니다. – user244129

+0

서버가 정상적으로 사용자가 앱을 종료하고 매우 짧은 시간 내에 앱을 다시 시작하는 경우를 정상적으로 처리 할 수 ​​있으면 서버가 확실히 처리해야합니다. 이 경우 서버가 클라이언트에 세션을 다시 할당하는 것이 좋습니다 (클라이언트의 UDID를 사용할 수 있음). 또는 시작시 새 세션을 만들고 이전 세션을 이더넷으로 페이드 시키십시오. – Jasarien