OpenFire с Xcode - PullRequest
       21

OpenFire с Xcode

1 голос
/ 15 ноября 2011

У меня два вопроса:

  1. У меня есть клиент jabber, разработанный с Xcode в Objective-C, и у меня установлен сервер Openfire.

    Когда я запускаюсервер, два клиента будут подключаться.Первый - мой клиент jabber: клиент для мгновенного обмена сообщениями, а второй - приложение для iPhone.Там нет проблем с общением.Моя единственная проблема заключается в передаче изображений.

    Вот код:

    - (void)viewDidLoad 
    {      
        [super viewDidLoad];
    
        self.tView.delegate = self;
        self.tView.dataSource = self;
        [self.tView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
    
        messages = [[NSMutableArray alloc ] init];
    
        JabberClientAppDelegate *del = [self appDelegate];
        del._messageDelegate = self;
        [self.messageField becomeFirstResponder];
    
        XMPPJID *jid = [XMPPJID jidWithString:chatWithUser];
    
        NSLog(@"Attempting TURN connection to %@", jid);
    
        TURNSocket *turnSocket = [[TURNSocket alloc] initWithStream:[self xmppStream] toJID:jid];
    
        [turnSockets addObject:turnSocket];
    
        [turnSocket startWithDelegate:self delegateQueue:dispatch_get_main_queue()];
        [turnSocket release];
    }
    
    - (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket 
    {      
      NSLog(@"TURN Connection succeeded!");
      NSLog(@"You now have a socket that you can use to send/receive data to/from the other person.");
    
      [turnSockets removeObject:sender];
    }
    
    - (void)turnSocketDidFail:(TURNSocket *)sender 
    { 
        NSLog(@"TURN Connection failed!");
        [turnSockets removeObject:sender];  
    }
    

    Я не знаю, так ли это, потому что оба используют один и тот же IP и пытаются подключиться к серверу с одинаковым IP или что-то насервер Openfire, который отключен.

    Теперь второй вопрос ...

  2. Чтобы решить первую проблему, я установил сервер Openfire на другом компьютере.В расширенной настройке клиента spark я передам IP-адрес (IP-адрес nat, 192.168 ...), а также порт и имя сервера.

    Но в моем приложении для iPhone это не так.т подключиться.Как я могу сделать соединение?В localhost он работает отлично.Я пытался изменить имя хоста и т. Д., Но безрезультатно.

    Может кто-нибудь помочь мне с этим?

PS Что мне делатьв OpenFire Server разрешить передачу данных?

1 Ответ

1 голос
/ 16 ноября 2011

Похоже, что вы используете XMPPFramework в клиенте.

TURNSocket - это неправильное выражение.Класс фактически реализует XEP-0065.Вам необходимо настроить прокси-сервер SOCKS5.Я не уверен, что OpenFire поддерживает SOCKS.OpenFire используется для внутриполосной сигнализации, которая помогает двум клиентам решить, как передать файл.Но сервер SOCKS5 необходим для передачи фактического файла во внеполосном потоке.

...