Мой вопрос: Я делаю передачу файлов через XMPP на Android и iOS клиенту Spark (Spark 2.6.3). Я успешно выполнил это на Android (из-за хороших библиотек), но до сих пор на iOS. Тем не менее, на обоих устройствах я заметил, что передача завершается неудачно через потоки ...
Could not establish socket with any provided host
На Android передача завершается, прибегая к ibb ...
Кроме того, в Android, когда я отправляю файл из Spark в мое приложение для Android, он, кажется, работает нормально через bytesreams.
Поэтому на iOS мне пришлось бы самому кодировать соединение ibb, но с какой стати байт-потоки вообще перестали работать?
Full Logs (приложение для Android):
05-15 13:42:04.023: I/System.out(523): 01:42:04 PM RCV (1093423288): http://jabber.org/protocol/bytestreams http://jabber.org/protocol/ibb
05-15 13:42:04.040: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.060: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.080: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.090: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.100: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.110: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.130: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.160: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.170: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.190: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.200: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.210: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.230: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.240: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.250: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.330: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.341: I/System.out(523): 01:42:04 PM RCV (1093423288):
05-15 13:42:04.350: I/System.out(523): 01:42:04 PM SENT (1093423288):
05-15 13:42:04.400: D/dalvikvm(523): GC_CONCURRENT freed 361K, 5% free 9330K/9799K, paused 5ms+4ms
05-15 13:42:09.412: I/System.out(523): 01:42:09 PM RCV (1093423288): Could not establish socket with any provided host
05-15 13:42:09.430: I/System.out(523): 01:42:09 PM SENT (1093423288):
05-15 13:42:09.451: I/System.out(523): 01:42:09 PM RCV (1093423288):
05-15 13:42:09.470: I/System.out(523): 01:42:09 PM SENT (1093423288): SGVsbG8sIEFuZHkh
05-15 13:42:09.480: I/System.out(523): 01:42:09 PM RCV (1093423288):
05-15 13:42:09.490: I/System.out(523): 01:42:09 PM SENT (1093423288):
05-15 13:42:09.500: I/System.out(523): 01:42:09 PM RCV (1093423288):
Full Logs (приложение для iOS):
2012-05-16 10:41:16.988 JabberClient[392:207] RECIEVED IN APP DELEGATE - http://jabber.org/protocol/bytestreams
2012-05-16 10:41:16.989 JabberClient[392:207] Attempting XEP65 connection to friendsUsername@beta.myCompany.co.uk/Spark 2.6.3
2012-05-16 10:41:16.990 JabberClient[392:207] TURNSocket DELEGATE STARTING
2012-05-16 10:41:16.991 JabberClient[392:5307] SENT -
2012-05-16 10:41:16.999 JabberClient[392:5307] RECIEVED IN TURN SOCKET -
2012-05-16 10:41:17.000 JabberClient[392:5307] SENT -
2012-05-16 10:41:17.004 JabberClient[392:5007] RECIEVED IN TURN SOCKET -
2012-05-16 10:41:17.005 JabberClient[392:5007] SENT -
2012-05-16 10:41:17.008 JabberClient[392:5007] RECIEVED IN TURNSOCKET -
2012-05-16 10:41:17.009 JabberClient[392:5007] SENT -
2012-05-16 10:41:27.027 JabberClient[392:540b] RECIEVED IN TURN SOCKET - Could not establish socket with any provided host
2012-05-16 10:41:27.028 JabberClient[392:540b] TURN Connection failed!
Настройки OpenFire XMPP -
xmpp.auth.anonymous - true
xmpp.client.compression.policy - disabled
xmpp.client.idle -1
xmpp.client.idle.ping - false
xmpp.domain - beta.myCompany.co.uk
xmpp.enabled - true
xmpp.externalip - proxy.beta.myCompany.co.uk
xmpp.offline.quota - 102400
xmpp.offline.type - bounce
xmpp.proxy.enabled - true
xmpp.proxy.port - 7777
xmpp.proxy.transfer.required - true
xmpp.server.compression.policy - disabled
xmpp.server.socket.active - true
xmpp.session.conflict-limit - 0
xmpp.session.conflict.limit - 0
xmpp.socket.ssl.active - true
Обновление 19 мая: Ниже приведены некоторые журналы, из которых Спарк успешно отправляет на андроид (а не наоборот). Используемый streamhost не является прокси! Тем не менее, мне еще не удалось воспроизвести это на iOS, и неужели я должен? Разве прокси не должен работать?
RCV (1079219752):
SENT (1079219752):
Обратите внимание, что если я попытаюсь отправить из Spark в мое приложение для iOS, когда используется не прокси-сервер streamhost, соединение будет отклонено! (как в пункте 6 этого документа протокола SOCKS версии 5 ). Rep - это 5 в следующем коде (но это должно быть 0).
UInt8 ver = [NSNumber extractUInt8FromData:data atOffset:0];
UInt8 rep = [NSNumber extractUInt8FromData:data atOffset:1];
Файл Hosts: (примечание: я заменил некоторые числа на x для этого вопроса stackoverflow)
127.0.0.1 localhost
10.95.xxx.xxx intranet.myCompany.co.uk
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
10.95.xxx.xxx beta.myCompany.co.uk