Сначала вызовите setProxyCandidates с массивом возможных серверов, которые вы могли бы использовать для прокси. По умолчанию используется «jabber.org», а ваш сервер не объединен с jabber.org, поэтому вы получаете сообщение об ошибке диско.
Далее, в вашем делегате, реализуйте следующие методы:
- (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket;
- (void)turnSocketDidFail:(TURNSocket *)sender;
Затем, в вашей реализации didSucceed, отправьте данные в переданный сокет, используя:
- (void)writeData:(NSData *)data
withTimeout:(NSTimeInterval)timeout
tag:(long)tag;
Наконец, закройте розетку:
- (void)disconnectAfterWriting;
Я понял это, посмотрев источник TURNSocket.m , отыскивая жестко закодированный "jabber.org", затем поискав [delegate
, чтобы найти места, которые вызывал делегат. Это вернуло меня к TURNSocket.h , в котором был задокументирован протокол для реализации делегатом.