Передача файлов
Введение
В Jabber, как и у большинства других IM, есть возможность передачи файлов, но, к сожалению, с ней иногда возникают проблемы. Почти всегда они связаны со способом подключения к Интернету. Довольно распространены способы (допустим при подключении к Интернету через локальную сеть или с места работы), при которых затруднительно устанавливать прямые соединения между 2 компьютерами (при обмене сообщениями прямых соединений не происходит, поэтому проблем нет). Если у Вас нет проблем с передачей файлов - Вам повезло и либо у Вас уже настроен клиент, либо у вас хороший способ подключения к интернету. Если передача файлов не работает - то необходимо настраивать клиент.
Теория
Существует несколько протоколов передачи файлов в Jabber. Самым популярным является SI. Другие (Jidlink, Jingle и HTTP) почти не используются. Существуют три разновидности SI:
- in-bound (в канале) - медленный и ненадежный, но будет работать всегда, при его использовании файлы превращаются в текст с помощью base64 и отсылаются как обычные сообщения.
- out-of-bound (вне канала) - быстрый, надежный, но работает не всегда, при его использовании файлы посылаются напрямую между клиентами.
- out-of-bound через прокси - быстрый, надежный, но требует настройки, при его использовании файлы посылаются через специальный транспорт-прокси на стороне сервера.
Самый предпочтительный 3-ий вид. Его обычно и настраивают.
Клиенты
Bombus и Gajim не нуждаются в настройке, так как первый использует только in-bound, а второй поставляется уже настроенным. Важно понимать, что если один клиент умеет передавать файлы только in-bound, а другой - только out-of-bound (допустим связка Bombus+Psi), то нельзя никакими методами передать файл между ними. Поэтому необходимо знать, какими способами может передавать файлы Ваш клиент
Практика
Настройка передачи файлов в популярных Jabber-клиентах:
Psi | Pidgin | Gajim |
Kopete | Tkabber | Pandion |
Miranda | QIP Infium | Adium |
Необычные способы обмена файлами
Ссылки
Описание протоколов и способов передачи файлов в Jabber (для продвинутых)