Hi,

I have been pondering on how to support offline-working in QWaveClient.
It is getting tricky when the TCP connection breaks accidentially,

Let's imagine the client sent a delta to the server, the server processes
it,
but the client could not hear it because the connection is broken.

Eventually the client will reconnect. Now it does not have a chance of
seeing
whether its last delta has reached the server or not.
In general it seems next to impossible to tell whether any given server
delta corresponds
to a client delta, because deltas are transformed and do not carry IDs.

Currently I see no quick solution.
Two more complex solutions come to my mind:
a) Introduce IDs in deltas. Unlikely because that would require Google to
change
   its code heavily? Nevertheless, it would be nice because currently
QWaveClient uses
   a most aweful hack to determin whether its delta has been processed by
the server ...
b) When connection to FedOne, the server should ask for a client ID.
   For each client ID & wavelet ID it keeps a persistent record about the
version of the last submitted delta.
   Upon connect the client can query fedone for this version information.
   This would mean no modifications to the federation protocol, but it would
require some fedone extensions.

Any other ideas, suggestions?

About the delta detection hack used in QWaveClient:
According to the wave specs a client must have only one outstanding delta.
Thus, it is important to find out whether a delta has been accepted or not
to
determine when the next delta can be sent.
To solve this, QWaveClient waits until it receives a delta from the server
which is authored by
its own user, assuming that this is the server response to the delta
QWaveClient has submitted itself.
This hack can break if the same user connects with two QWaveClient instances
and concurrently
types in both instances (ok, unlikely, but still ...).

Did I miss a trick of getting this right?

Cheers
Torben
--
You received this message because you are subscribed to the Google Groups "Wave Protocol" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.

Reply via email to