elastos / Elastos.CarrierClassic.Native

Elastos Carrier is a decentralized peer to peer communication framework.
GNU General Public License v3.0
30 stars 27 forks source link

[Enhancement]: Improve the handle situations of being unable to receive messages either by carrier network or by dstore. #308

Open SquareTools opened 5 years ago

SquareTools commented 5 years ago

can't receive the offline messages, the steps are:

  1. A and B are friends
  2. A and B are all online
  3. when the app exits at B, then A sends messages to B before receiving the DisConnect state
  4. when the app starts at B, B can't receive the messages from A.
stiartsly commented 5 years ago

Quoted from wechat group of Elastos Carrier Internatnl Devs listed by @peter-strauss:

  1. "@stiartsly we have found two new situations that may need improvement:"
  2. "1st situation: user1 is online, user2 connects to the carrier network, but does not see user1 online yet (short period of time) -> user2 sends user1 a message -> message is sent to dstore, although user1 is actually online -> user1 does not receive the message until carrier is restarted";
  3. "2nd situation: user1 and user2 are both online -> user1 goes offline, but user2 sees user1 still as online (short period of time) -> user2 sends user1 a message -> message is not stored on dstore, nor received by user1 -> message is lost"