Подключаем транспорты к GTalk. Через тернии…

May 04, 2009 02:59


Это кросспост моей записи из хаброблога Jabber, also в сообществе ru_jabber

То там, то здесь в течение последнего полугода возникают сообщения о том, что люди не могут подключить к их jabber-аккаунту на Google Talk новые транспорты. Как показал анализ трафика и несколько обсуждений в списке рассылки jabber-operators, дело в том, что GTalk «не любит» JIDы в формате srv.example.org, а предпочитает исключительно node@example.org и поэтому честные транспорты не могут запросить у пользователя авторизацию.

Если количество ссылок вас еще не утомило, то ниже я в двух словах расскажу, что с этим можно сделать, пока инженеры Google полгода чинят этот лютый баг.

Решение напрашивается само собой - надо сделать транспорт srv.example.org доступным по адресу вида node@example.org. И желательно это сделать не модифицируя код каждого транспорта, т.к. костыль этот явно временный[1]. Также, желательно, чтоб этот мета-транспорт был простым как топор и позволял использовать любой публичный транспорт, а не толко транспорты того сервера, где установлен мета-транспорт. Запутались? Отлично, идём дальше.

[1] - Увы, нет ничего более постоянного, чем временное.

Администраторы публичных сервисов могут взять код pymeta-t на github, если, конечно, они хотят помочь несчастным gmail-юзерам использовать те самые публичные сервисы. Несмотря на свою тривиальность код вполне может быть не без багов, и будет здорово, если бы кто-нибудь с опытом работы с twisted его прокомментирует.

Пользователи публичных jabber-транспортов же могут поступить следующим образом. Допустим, вы ходите подключить к своей учётке на GTalk транспорт srv.remote.org, тогда в service-discovery своего клиента вам следует обозреть сервисы JIDа srv.remote.org@meta.example.org, где meta.example.org - адрес мета-транспорта. Поскольку единственная копия pymeta-t установлена сейчас на meta.darkk.net.ru, то обозревать стоит, соответственно, srv.remote.org@meta.darkk.net.ru, и регистрироваться там же.

Да, и еще. Gajim тоже не особо блюдёт RFC и не предоставляет возможности зарегистрироваться на транспорте с JID вида node@example.org, попросту не отрисовывая соответствующую кнопку в интерфейсе. С Psi всё работает как положено.

pub/habrahabr.ru, google, pymeta-t, gtalk, transport, python, jabber

Previous post Next post
Up