Difference between revisions of "Flow/Server based 1-1 chat state"

From XMPP WIKI
Jump to navigation Jump to search
(Created page with "= Server based 1-1 chat state = (or: persistent 1-1 chats involving multiple clients of one user) Toolkit: # MAM # MR2 (or Carbons) # MID Findings # XMPP-IM (RFC 6121 8.)...")
 
Line 17: Line 17:
== Sketch ==
== Sketch ==


Romeo and Julia want to talk. They both have multiple clients (desktop, mobile device, etc).
Romeo and Julia want to talk. They both have multiple clients (desktop, mobile device, etc), and they expect that their conversation is completely available on each of their devices.


* If Romeo sends a message to Julia, the message is forked to all other clients of Romeo, and to all clients of Julia
* If Romeo sends a message to Julia, the message is forked to all other clients of Romeo, and to all clients of Julia

Revision as of 10:03, 4 June 2015

Server based 1-1 chat state

(or: persistent 1-1 chats involving multiple clients of one user)

Toolkit:

  1. MAM
  2. MR2 (or Carbons)
  3. MID

Findings

  1. XMPP-IM (RFC 6121 8.) Message routing is not useful for the goal
  2. Clients are able to determine the MAM ID before the send the message


Sketch

Romeo and Julia want to talk. They both have multiple clients (desktop, mobile device, etc), and they expect that their conversation is completely available on each of their devices.

  • If Romeo sends a message to Julia, the message is forked to all other clients of Romeo, and to all clients of Julia
  • When the message arrives at Julia clients, it will contain the MAM ID under which it was stored in Julia's MAM Archive
  • Romeo is able to calculate the MAM ID under which the message was stored in his MAM Archive, by concatenating the Message ID with the Stream ID (or another suitable ID told to Romeo's client).
  • Those two MAM IDs are not identical. Romeo and Julia store the same message in their MAM Archive under different IDs