Contents

Base Tutorial

NetFunnel.framework 추가

client/ios/Library/Release(Debug)-iphoneos(iphonesimulator) 디렉터리에서 알맞은 NetFunnel.framework를 선택하여 자신의 Project에 추가하세요.

NOTE

Project Properties → General → Linked Frameworks and Libraries → + (add item) → Add Other...

Global Config 설정

넷퍼넬 서버의 IP/포트와 같은 기본 정보를 애플리케이션 실행 시에 초기화하세요.

설정 방법

NetFunnel.frameworks/Headers/NetFunnelDefine.h 편집
애플리케이션 초기화 시 설정값 초기화

#import <NetFunnel/NetFunnel.h>
...
[NetFunnel setGlobalConfigObject:@"58.181.39.178" forKey:@"host" withId:nil];	
[NetFunnel setGlobalConfigObject:@"80" forKey:@"port" withId:nil];

설정 가능 변수

  • host : NetFunnel Server Host/IP 주소 (Default : NETFUNNEL_DEF_HOST=@"test.netfunnel.co.kr")
  • port : NetFunnel Server Port 번호 (Default : NETFUNNEL_DEF_PORT=80)
  • proto : 요청 Prototype (http|https) (Default : NETFUNNEL_DEF_PROTO=@"http")
  • proto : 요청 URI Query (Default : NETFUNNEL_DEF_QUERY=@"ts.wseq")
  • service_id : Service ID (Default : NETFUNNEL_DEF_SERVICE_ID=@"service_1")
  • action_id : Action ID (Default : NETFUNNEL_DEF_ACTION_ID=@"act_1")
  • conn_timeout : Connection Timeout (Default : NETFUNNEL_DEF_CONN_TIMEOUT=3.0)
  • conn_retry : Connection Retry Count (Default : NETFUNNEL_DEF_CONN_RETRY=1)
  • ipblock_wait_time : IPBlock 시 가상 대기창을 보여주는 시간 (Default : NETFUNNEL_DEF_IPBLOCK_WAIT_TIME=10.0)
  • wait_view_object : Custom 대기창 Object

Delegate 작성

넷퍼넬 요청 후에 서버로부터 전달된 응답 처리를 해주는 Delegate를 정의해줘야 합니다.

delegate :

@protocol NetFunnelDelegate <NSObject>

@required
-(void)NetFunnelActionSuccess:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelCompleteSuccess:(NSString *)nid withResult:(NetFunnelResult *)result;

@optional
-(void)NetFunnelActionContinue:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelActionError:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelActionBlock:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelActionIpBlock:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelAliveNoticeContinue:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelAliveNoticeError:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelAliveNoticeBlock:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelAliveNoticeIpBlock:(NSString *)nid withResult:(NetFunnelResult *)result;
-(void)NetFunnelCompleteError:(NSString *)nid withResult:(NetFunnelResult *)result;

@end

Request 전달

요청 Type

  • Action

    넷퍼넬 서버에 자원 사용 허가를 받는 요청입니다. Action 요청 시 순번을 부여받게 되며 자신의 순번에 도달하지 않았다면 사용자 화면에 대기창을 출력하여 대기를 시켜줍니다.

    • 기본적인 Action요청 방법
      [[[NetFunnel alloc] initWithDelegate:self pView:self.view] action];
      
    • Service ID와 Action ID를 지정해서 요청하는 방법
      [[[NetFunnel alloc] initWithDelegate:self pView:self.view] actionWithSid:@"service_1" aid:@"act_1"];	
      
  • Complete

    점유했던 자원을 반환하는 요청으로 Action을 실행한 후에 자원을 모두 사용한 이후에는 꼭 실행해줘야 합니다. 만약 실행하지 않는다면 불필요한 대기가 발생할 수 있습니다.

    • 기본적인 Complete 요청 방법
      [[[NetFunnel alloc] initWithDelegate:self pView:self.view] complete];
      
  • Alive (Optional)

    자원을 점유한 이후에 일정 시간 동안 계속 자원을 점유하고자 할 때는 Alive 요청을 해야 합니다.

    • 기본적인 Alive 요청 방법
      [[[NetFunnel alloc] initWithDelegate:self pView:self.view] alive];
      

대기창 디자인

NetFunnelWaitView Class와 NetFunnelWaitViewProtocol을 이용해서 자신만의 대기창을 만들 수 있습니다.