Время ожидания соединения SOCKS5 (GCDAsyncSocket). (OpenFire, XEP-0065 и iOS XMPPFramework)
Проблема: я пытаюсь TURNSocket (XEP-0065 - SOCKS5), используя iOS XMPPFramework и сервер OpenFire. Я хочу иметь возможность отправлять и получать файлы. Однако в большинстве случаев получатель не возвращает ответа. В настоящее время я подозреваю, что проблема связана с прокси-сервером OpenFire, время ожидания которого истекло! Это настроено в локальной сети, и я отредактировал файл hosts, чтобы указать на него.
Примечание. Основа моего кода взята из следующего руководства: http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/
XML и ошибка: отправитель отправляет следующий XML (после нескольких других сообщений XML XEP-0065 назад и вперед)...
<iq type="set"
to="friendsUsername@beta.myCompany.co.uk/spark"
id="DD96A581-BFA3-47BC-A3C0-D26AD48D7442">
<query xmlns="http://jabber.org/protocol/bytestreams"
sid="DD96A581-BFA3-47BC-A3C0-D26AD48D7442"
mode="tcp">
<streamhost xmlns="http://jabber.org/protocol/bytestreams"
jid="proxy.beta.myCompany.co.uk"
host="127.0.1.1"
port="7777"/>
</query>
</iq>
Если я переписываюсь с другим экземпляром моего приложения, я получаю следующую ошибку в получателе при попытке использовать proxy.beta.myCompany.co.uk
Ошибка домена =GCDAsyncSocketErrorDomain Code=3 "Попытка подключения к хосту истекла"
Итак, мой главный вопрос: почему истекло время ожидания?
Дополнительная информация: если у меня есть чат между одним экземпляром моего приложения и клиентом Adium IM Chat, я не получаю ответа. Однако, если я общаюсь с клиентом чата Spark IM, я получаю следующий ответ...
<iq xmlns="jabber:client"
id="9A34F268-9FC9-44F8-9662-4651A9E0B633"
to="myUsername@beta.myCompany.co.uk/d04f6694"
from="friendsUsername@beta.myCompany.co.uk/Spark 2.6.3"
type="error">
<query xmlns="http://jabber.org/protocol/bytestreams"
sid="9A34F268-9FC9-44F8-9662-4651A9E0B633"
mode="tcp">
<streamhost jid="proxy.beta.myCompany.co.uk"
host="127.0.1.1"
port="7777"/>
</query>
<error code="406"
type="MODIFY">
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
1 ответ
В OpenFire мне нужно было установить ip прокси-сервера, используя системное свойство 'xmpp.proxy.externalip'.