2016-06-09 4 views
1

SocketRocket을 사용자 지정 프레임 워크로 이동 했으므로 이제 대리자 메서드가 호출되지 않습니다. 이 코드는 프레임 워크에 없을 때 작동하며 주 스레드에서 실행 중이며 대리자는 nill이 아닙니다.프레임 워크에서 SocketRocket 대리자 메서드가 호출되지 않습니다.

_mSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"wss://websocket.url.here"]]]; 
      _mSocket.delegate = self; 
      attempts = 0; 
      [_mSocket open]; 

- (void)webSocketDidOpen:(SRWebSocket *)webSocket; 
{ 
    NSLog(@"Websocket Connected"); 

    // Configure SSL/TLS settings 
    NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithCapacity:3]; 



    [settings setObject:@"wss://websocket.test.clearcaptions.com" forKey:(NSString *)kCFStreamSSLPeerName]; 



    // // Allow self-signed certificates 
    [settings setObject:[NSNumber numberWithBool:YES] 
       forKey:(NSString *)kCFStreamSSLPeerName]; 

    // // In fact, don't even validate the certificate chain 
    [settings setObject:[NSNumber numberWithBool:NO] 
       forKey:(NSString *)kCFStreamSSLValidatesCertificateChain]; 




    } 

    - (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error; 
    { 
     NSLog(@":(Websocket Failed With Error %@", error); 
     _mSocket = nil; 
     [self _reconnect]; 
    } 

    - (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message; 
    { 
     NSLog(@"Received \"%@\"", message); 
    } 

    - (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean; 
    { 
     NSLog(@"WebSocket closed"); 
     [mDelegate protocolMessageAvailable:@"" msgType:STATE_NETWORK_OFFLINE]; 
     _mSocket = nil; 
    } 

    - (void)webSocket:(SRWebSocket *)webSocket didReceivePong:(NSData *)pongPayload; 
    { 
     NSLog(@"Websocket received pong"); 
    } 

답변

1

오류가 발견되었습니다. 나는 viewdidload에 프레임 워크를 만들었고 메서드가 완료되면 값을 버립니다.

+0

이것이 내 문제라고 생각합니다 ... 해결책을 자세히 설명해 주시겠습니까? – SlimCheney

+1

실제로 문제는 didFinishLaunchingWithOptions 메서드에서 로컬 변수 – SlimCheney

+0

내 문제와 동일한 개념으로 선언했을 때 위임 클래스가 범위를 벗어나는 것입니다. – user1079052

관련 문제