Как взаимодействуют чаты Gmail (для ПК) и Talk (для Android)?

11

Взаимодействие между Google Talk через Gmail и Google Talk через клиент Android кажется запутанным. Вот мое понимание того, как все работает:

  • Если чат запущен в Gmail, он будет синхронизироваться (почти) в режиме реального времени с Talk.
  • Если чат запущен в Talk, он будет отображаться в истории чата в Gmail, но не будет порождать новый чат в Gmail (поэтому чат ограничен Talk).
  • Если чат запускается в Gmail и продолжается в Talk, сообщения перестают отправляться в чат в Gmail, а новые сообщения будут отправляться в Talk (а также в историю чата в Gmail). По моему (короткому) опыту, этот переход может быть немного нестабильным.

Это в принципе, как это работает? Я бы хотел увидеть идеальную синхронизацию 1: 1 между Gmail и Talk. То есть, если я запущу чат в Talk, он создаст новую вкладку чата в Gmail, и все будет перенесено в оба, и наоборот.

Кто-нибудь знает, что находится в стадии разработки, или даже возможно сейчас? Как все остальные справляются с перемещением как можно более плавно между Gmail и Talk?

Спасибо!

неиспользуемый
источник

Ответы:

9

Чтобы дать некоторое представление об этом вопросе, Google Talk использует xmpp (он же Jabber), который является открытым стандартом мгновенных сообщений. В рамках этого стандарта каждому клиенту для обмена мгновенными сообщениями (чат в gmail и приложение для Android) назначается ресурс. Затем сервер использует ресурс, чтобы узнать, какой клиент обменивается данными.

Вот как работает взаимодействие: скажем, ваша учетная запись Gmail - bob@gmail.com . Тогда чат Gmail может быть bob@gmail.com/gchat и приложение talk bob@gmail.com/talk

Когда ваша подруга Сью ( sue@gmail.com ) хочет отправить вам сообщение, она просто отправляет его на bob@gmail.com . На этом этапе сервер либо отправляет сообщение тому клиенту, который вы использовали последним, либо отправляет сообщение всем подключенным в данный момент клиентам (Google делает последнее).

Когда вы отвечаете Сью с помощью приложения talk, она получает сообщение от bob@gmail.com/talk . Теперь вместо отправки дальнейших сообщений на bob@gmail.com клиент Сью теперь отправляет сообщения напрямую на bob@gmail.com/talk и будет продолжать это делать до тех пор, пока сообщение не будет получено от другого клиента.

Это означает, что сказанное Сайбугу должно работать. То есть для переключения между клиентами отправьте сообщение человеку, с которым вы общаетесь, с нужного клиента.


tl; dr : Это происходит по замыслу , обходной путь Сайбугу работает.

Дейв
источник
Спасибо за объяснение. Я был в некоторой степени осведомлен о том, как работает Jabber, но я предполагал, что у Google есть слой Jabber, обращенный к сети, и затем перенаправлял сообщения клиентам, используя свою собственную внутреннюю систему. Тот факт, что они используют только Jabber, имеет гораздо больше смысла.
неиспользованный
4

Я не знаю, рассматривается ли то, что вы предлагаете, - было бы неплохо.

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

Saiboogu
источник
Согласитесь, меня сильно раздражает то, как это работает в настоящее время.
Брайан Денни