Как получить номер порта для приложения для чата iPhone

Я разрабатываю приложение для чата.

Но сейчас общение в чате возможно только с Google, потому что я знаю только номер порта Google.

xmppClient = [[XMPPClient alloc] init];
[xmppClient addDelegate:self];

// Replace me with the proper domain and port.
// The example below is setup for a typical google talk account.
[xmppClient setDomain:@"talk.google.com"];
[xmppClient setPort:5222];

Вы можете видеть, что Google установил 5222 в качестве номера порта.

Точно так же я хочу установить номер порта для Yahoo, Windows Messenger и других популярных сайтов. Как я могу получить все это?

(Это как-то так - "XMPP специфичен для гугловских"? ? )


person Sagar R. Kothari    schedule 21.11.2009    source источник
comment
Это принадлежит superuser.com   -  person Alex Reynolds    schedule 22.11.2009


Ответы (3)


5222/tcp — порт по умолчанию для XMPP, но в вашей реализации он может быть другим. Чтобы узнать это, выполните запрос DNS SRV для _xmpp-client._tcp.YOURDOMAIN, заменив YOURDOMAIN доменом. вы пытаетесь подключиться. Это вернет 0+ записей, которые имеют комбинации имени хоста/порта для подключения. Если вы вернете 0 записей, предположим, что это порт 5222.

Например, я хочу подключиться к серверу GoogleTalk и войти в систему с учетной записью [email protected]. Мой клиент выполняет поиск, который можно смоделировать с помощью dig в командной строке, например:

% dig +short -t SRV _xmpp-client._tcp.gmail.com.
20 0 5222 talk1.l.google.com.
20 0 5222 talk4.l.google.com.
5 0 5222 talk.l.google.com.
20 0 5222 talk3.l.google.com.
20 0 5222 talk2.l.google.com.

Результат с самым низким номером приоритета — 5 0 5222 talk.l.google.com., что означает, что вы открываете TCP-соединение с talk.l.google.com через порт 5222.

Чтобы сделать запросы SRV из кода, ознакомьтесь с этим ответом, который полагается на DNSServiceQueryRecord.

person Joe Hildebrand    schedule 09.12.2009

Страница свойств Kraken Openfire содержит необходимую информацию о порте и домене. Просто повторно используйте и попробуйте с вашим приложением.

person Community    schedule 21.11.2009

5222 — порт по умолчанию для XMPP, но в вашей реализации он может быть другим. Чтобы выяснить это, вы выполняете запрос DNS-сервера для _xmpp-client._tcp.DOMAIN_Name, где вы заменяете DOMAIN_Name доменом, к которому пытаетесь подключиться (например, gmail.com, google.com, yahoo.com). Это вернет 0+ записей, которые имеют комбинации hostName/port для подключения. Если вы вернете 0 записей, предположим, что это порт 5222.

person Amit Singh    schedule 20.04.2011