How do Gmail (desktop) and Talk (Android) chats interact? 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?

Thanks!
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.