The interaction between Google Talk via Gmail and Google Talk via the Android client seems confusing. Here's my understanding of how things work:

  • If a chat is started in Gmail, it will sync in (near) real-time to Talk.
  • If a chat is started in Talk, it will show up in the chat history in Gmail, but will not spawn a new chat in Gmail (so the chat is confined to Talk).
  • If a chat is started in Gmail, and continued in Talk, messages will stop being sent to the chat in Gmail, and new messages will be sent to Talk (as well as the chat history in Gmail). In my (short) experience, this transition can be a bit flaky.

Is this basically how it works? What I'd love to see is a perfect 1:1 sync between Gmail and Talk. That is, if I start a chat in Talk, it will create a new chat tab in Gmail, and everything will get pushed to both, and vice-versa.

Anyone know if that's in the pipeline, or even possible now? How does everyone else handle moving as seamlessly as possible between Gmail and Talk?



To provide some background on this question, google talk uses xmpp (aka Jabber) which is an open Instant Messaging standard. As a part of this standard, every instant messaging client (chat in gmail and the android talk app) is assigned a Resource. The server then uses the resource to know which client is communicating.

This is how the interaction works: Say your gmail account is bob@gmail.com. Then gmail chat might be bob@gmail.com/gchat and the talk app bob@gmail.com/talk

When your friend Sue (sue@gmail.com) wants to send you a message, she simply sends it to bob@gmail.com. At this point, the server either sends the message to whichever client you used last, or sends the message to all currently connected clients (google does the latter).

When you reply to Sue using the talk app, she receives the message from bob@gmail.com/talk. Now, instead of sending further messages to bob@gmail.com, Sue's client now sends messages directly to bob@gmail.com/talk and will continue doing so until a message is received from some other client.

This means that what Saiboogu said should work. That is, to switch between clients, send a message to the person you are chatting with from the desired client.

tl;dr: This happens by design, Saiboogu's workaround works.

  • Thanks for the explanation. I was somewhat aware of how Jabber works, but I had assumed that Google had a web-facing Jabber layer, then routed the messages to clients using their own internal system. The fact that they're pretty much just using stock Jabber makes a lot more sense. – unused Oct 27 '10 at 3:33

I don't know if what you propose is under consideration -- it would be nice.

Your summary of how it all works sounds accurate. I handle the transition by sending a new message from whatever new location I'm continuing the conversation in, to manually force it to redirect. As you say, you won't get the history but it's the simplest method.

  • Agreed, I get greatly annoyed by the way it currently works. – Bryan Denny Oct 25 '10 at 15:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.