2013-06-04 2 views
4

내가 socket.io를 사용하는 NodeJS 서버가 및 코드는 다음과 같은 것입니다 포트 8000을 청취 발생 이 서버에 연결할 수있는 웹 클라이언트는 정상적으로 작동합니다. 따라서 서버 코드는 문제가 아닙니다. 문제는 다음에 설명 할 iOS 클라이언트에서 발생합니다.아이폰 OS 클라이언트

platform :ios 
pod 'SocketRocket', '0.2.0' 

#import <SocketRocket/SRWebSocket.h> 

@interface MyViewController : UIViewController<SRWebSocketDelegate> 
    ... 
    @property (strong, nonatomic) SRWebSocket *socket; 
@end 

MyViewController.m에서 MyViewController.h에서 :

아이폰 OS 클라이언트는 그것을 설치, 나는 다음으로 Podfile을 Cocoapods을 사용하고있는 SocketRocket를 사용

@synthesize socket = _socket; 
... 

- (void)viewDidLoad 
{ 
    _socket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://127.0.0.1:8000"]]]; 
    _socket.delegate = self; 

    [_socket open]; 

    NSLog(@"Connect"); 
} 

- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message { 
    NSLog(@"Error didReceiveMessage"); 
} 

- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error { 
    NSLog(@"Error connecting websocket"); 
} 

- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean { 
    NSLog(@"Error didCloseWithCode %d: %@", code, reason); 
} 

iOS 클라이언트가 실행되면 "연결"로그가 나타납니다. 그러나 대리자 didCloseWithCode()도 호출됩니다. 그리고 로그는

Error didCloseWithCode 0: Stream end encountered 

나는 전문가의 도움을 얻을 시간이 많이 들었습니다. 왜 "스트림 종료"문제가 발생합니까? NodeJS 서버는 웹 클라이언트와 연결할 수 있기 때문에 잘 작동합니다. iOS 클라이언트에서 내가 뭘 잘못하고 있으며 어떻게 수정할 수 있습니까?

업데이트 : 서버에 JavaScript 코드를 추가하여 util.log() 호출을 표시하십시오. 웹 클라이언트가 연결되면 콘솔에 "클라이언트 연결"메시지가 표시되고 iOS 클라이언트가 연결을 시도하면 콘솔에는 아무것도 표시되지 않음

+0

한 번 봐 걸릴 수 있습니다 당신은 당신을 말할 수있는 서버 측에서 어떤 로깅을 수행 서버가 iOS 클라이언트로부터 연결을 수신합니까? –

+0

@MattBridg es : 질문을 업데이트했습니다. WebClient가 연결되면 콘솔에서 메시지를 기록합니다. 하지만 iOS 클라이언트가 연결을 시도 할 때 아닙니다. –

답변