IOS XMPP 프로토콜 기반 개발 - XMPPFramewok 프레임워크(二): 서버 연결

5371 단어 frame

서버에 연결하기 전에 다음 사항을 준비해야 합니다.
1. XMPP 서버 구축
2. 서버 주소 및 포트 설정
[_xmppStream setHostName:@"127.0.0.1"];
[_xmppStream setHostPort:5222];
3. connect 호출
 
주요 항목:
JID - 형식은 사용자 이름 + @ + 서버 주소여야 합니다. 예:[email protected]
연결 서버는 JID 설정을 해야 합니다. 계정이 없으면 임의의 값을 설정할 수 있습니다.
  
구체적인 코드는 다음과 같습니다.
- (BOOL)connect:(NSString*)user withpassword:(NSString*)pwd

{  

if (user != nil) { user = [NSString stringWithFormat:@"%@@%@",user,_xmppStream.hostName]; } if (![_xmppStream isDisconnected]) { if(_isLogined){ NSError *error = nil; password=pwd; [[self xmppStream] setMyJID:[XMPPJID jidWithString:user resource:@"ios"]]; if (![[self xmppStream] authenticateWithPassword:password error:&error]) { NSLog(@"Error authenticating: %@", error); } } return YES; } NSString *myJID = user; NSString *myPassword = pwd; if ( myPassword != nil) { password = myPassword; } if (myJID != nil) { [_xmppStream setMyJID:[XMPPJID jidWithString:myJID resource:@"ios"]]; }else{ [_xmppStream setMyJID:[XMPPJID jidWithString:_xmppStream.hostName resource:@"ios"]]; } NSError *error = nil; [_xmppStream connectWithTimeout:10 error:&error]; if(error) { NSLog(@" %@",error); } return YES; }

 
반환된 콜백 결과 연결
/// 

- (void)xmppStreamDidConnect:(XMPPStream *)sender

{

    NSLog(@" ");

    isXmppConnected = YES;

    if(_isLogined){

        NSError *error = nil;

        if (![[self xmppStream] authenticateWithPassword:password error:&error])

        {

            NSLog(@"Error authenticating: %@", error);

        }

    }

}

/// 

- (void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error

{

    NSLog(@" ");

    

    if (!isXmppConnected)

    {

        //DDLogError(@"Unable to connect to server. Check xmppStream.hostName");

    }

}

 
연결 해제
 [_xmppStream disconnect];

좋은 웹페이지 즐겨찾기